scene_flow_calib T_scene_flow_calib SceneFlowCalib SceneFlowCalib scene_flow_calib (Operator)
Name
scene_flow_calib T_scene_flow_calib SceneFlowCalib SceneFlowCalib scene_flow_calib — Berechnung des kalibrierten Szenenflusses zwischen zwei
Stereobildpaaren.
Signatur
scene_flow_calib (ImageRect1T1 , ImageRect2T1 , ImageRect1T2 , ImageRect2T2 , Disparity : : SmoothingFlow , SmoothingDisparity , GenParamName , GenParamValue , CamParamRect1 , CamParamRect2 , RelPoseRect : ObjectModel3D )
Herror T_scene_flow_calib (const Hobject ImageRect1T1 , const Hobject ImageRect2T1 , const Hobject ImageRect1T2 , const Hobject ImageRect2T2 , const Hobject Disparity , const Htuple SmoothingFlow , const Htuple SmoothingDisparity , const Htuple GenParamName , const Htuple GenParamValue , const Htuple CamParamRect1 , const Htuple CamParamRect2 , const Htuple RelPoseRect , Htuple* ObjectModel3D )
void SceneFlowCalib (const HObject& ImageRect1T1 , const HObject& ImageRect2T1 , const HObject& ImageRect1T2 , const HObject& ImageRect2T2 , const HObject& Disparity , const HTuple& SmoothingFlow , const HTuple& SmoothingDisparity , const HTuple& GenParamName , const HTuple& GenParamValue , const HTuple& CamParamRect1 , const HTuple& CamParamRect2 , const HTuple& RelPoseRect , HTuple* ObjectModel3D )
static HObjectModel3DArray HObjectModel3D ::SceneFlowCalib (const HImage& ImageRect1T1 , const HImage& ImageRect2T1 , const HImage& ImageRect1T2 , const HImage& ImageRect2T2 , const HImage& Disparity , const HTuple& SmoothingFlow , const HTuple& SmoothingDisparity , const HTuple& GenParamName , const HTuple& GenParamValue , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 , const HPose& RelPoseRect )
void HObjectModel3D ::SceneFlowCalib (const HImage& ImageRect1T1 , const HImage& ImageRect2T1 , const HImage& ImageRect1T2 , const HImage& ImageRect2T2 , const HImage& Disparity , double SmoothingFlow , double SmoothingDisparity , const HString& GenParamName , const HString& GenParamValue , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 , const HPose& RelPoseRect )
void HObjectModel3D ::SceneFlowCalib (const HImage& ImageRect1T1 , const HImage& ImageRect2T1 , const HImage& ImageRect1T2 , const HImage& ImageRect2T2 , const HImage& Disparity , double SmoothingFlow , double SmoothingDisparity , const char* GenParamName , const char* GenParamValue , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 , const HPose& RelPoseRect )
void HObjectModel3D ::SceneFlowCalib (const HImage& ImageRect1T1 , const HImage& ImageRect2T1 , const HImage& ImageRect1T2 , const HImage& ImageRect2T2 , const HImage& Disparity , double SmoothingFlow , double SmoothingDisparity , const wchar_t* GenParamName , const wchar_t* GenParamValue , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 , const HPose& RelPoseRect )
(Nur Windows)
HObjectModel3DArray HCamPar ::SceneFlowCalib (const HImage& ImageRect1T1 , const HImage& ImageRect2T1 , const HImage& ImageRect1T2 , const HImage& ImageRect2T2 , const HImage& Disparity , const HTuple& SmoothingFlow , const HTuple& SmoothingDisparity , const HTuple& GenParamName , const HTuple& GenParamValue , const HCamPar& CamParamRect2 , const HPose& RelPoseRect ) const
HObjectModel3D HCamPar ::SceneFlowCalib (const HImage& ImageRect1T1 , const HImage& ImageRect2T1 , const HImage& ImageRect1T2 , const HImage& ImageRect2T2 , const HImage& Disparity , double SmoothingFlow , double SmoothingDisparity , const HString& GenParamName , const HString& GenParamValue , const HCamPar& CamParamRect2 , const HPose& RelPoseRect ) const
HObjectModel3D HCamPar ::SceneFlowCalib (const HImage& ImageRect1T1 , const HImage& ImageRect2T1 , const HImage& ImageRect1T2 , const HImage& ImageRect2T2 , const HImage& Disparity , double SmoothingFlow , double SmoothingDisparity , const char* GenParamName , const char* GenParamValue , const HCamPar& CamParamRect2 , const HPose& RelPoseRect ) const
HObjectModel3D HCamPar ::SceneFlowCalib (const HImage& ImageRect1T1 , const HImage& ImageRect2T1 , const HImage& ImageRect1T2 , const HImage& ImageRect2T2 , const HImage& Disparity , double SmoothingFlow , double SmoothingDisparity , const wchar_t* GenParamName , const wchar_t* GenParamValue , const HCamPar& CamParamRect2 , const HPose& RelPoseRect ) const
(Nur Windows)
HObjectModel3DArray HPose ::SceneFlowCalib (const HImage& ImageRect1T1 , const HImage& ImageRect2T1 , const HImage& ImageRect1T2 , const HImage& ImageRect2T2 , const HImage& Disparity , const HTuple& SmoothingFlow , const HTuple& SmoothingDisparity , const HTuple& GenParamName , const HTuple& GenParamValue , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 ) const
HObjectModel3D HPose ::SceneFlowCalib (const HImage& ImageRect1T1 , const HImage& ImageRect2T1 , const HImage& ImageRect1T2 , const HImage& ImageRect2T2 , const HImage& Disparity , double SmoothingFlow , double SmoothingDisparity , const HString& GenParamName , const HString& GenParamValue , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 ) const
HObjectModel3D HPose ::SceneFlowCalib (const HImage& ImageRect1T1 , const HImage& ImageRect2T1 , const HImage& ImageRect1T2 , const HImage& ImageRect2T2 , const HImage& Disparity , double SmoothingFlow , double SmoothingDisparity , const char* GenParamName , const char* GenParamValue , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 ) const
HObjectModel3D HPose ::SceneFlowCalib (const HImage& ImageRect1T1 , const HImage& ImageRect2T1 , const HImage& ImageRect1T2 , const HImage& ImageRect2T2 , const HImage& Disparity , double SmoothingFlow , double SmoothingDisparity , const wchar_t* GenParamName , const wchar_t* GenParamValue , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 ) const
(Nur Windows)
static void HOperatorSet .SceneFlowCalib (HObject imageRect1T1 , HObject imageRect2T1 , HObject imageRect1T2 , HObject imageRect2T2 , HObject disparity , HTuple smoothingFlow , HTuple smoothingDisparity , HTuple genParamName , HTuple genParamValue , HTuple camParamRect1 , HTuple camParamRect2 , HTuple relPoseRect , out HTuple objectModel3D )
static HObjectModel3D[] HObjectModel3D .SceneFlowCalib (HImage imageRect1T1 , HImage imageRect2T1 , HImage imageRect1T2 , HImage imageRect2T2 , HImage disparity , HTuple smoothingFlow , HTuple smoothingDisparity , HTuple genParamName , HTuple genParamValue , HCamPar camParamRect1 , HCamPar camParamRect2 , HPose relPoseRect )
void HObjectModel3D .SceneFlowCalib (HImage imageRect1T1 , HImage imageRect2T1 , HImage imageRect1T2 , HImage imageRect2T2 , HImage disparity , double smoothingFlow , double smoothingDisparity , string genParamName , string genParamValue , HCamPar camParamRect1 , HCamPar camParamRect2 , HPose relPoseRect )
HObjectModel3D[] HCamPar .SceneFlowCalib (HImage imageRect1T1 , HImage imageRect2T1 , HImage imageRect1T2 , HImage imageRect2T2 , HImage disparity , HTuple smoothingFlow , HTuple smoothingDisparity , HTuple genParamName , HTuple genParamValue , HCamPar camParamRect2 , HPose relPoseRect )
HObjectModel3D HCamPar .SceneFlowCalib (HImage imageRect1T1 , HImage imageRect2T1 , HImage imageRect1T2 , HImage imageRect2T2 , HImage disparity , double smoothingFlow , double smoothingDisparity , string genParamName , string genParamValue , HCamPar camParamRect2 , HPose relPoseRect )
HObjectModel3D[] HPose .SceneFlowCalib (HImage imageRect1T1 , HImage imageRect2T1 , HImage imageRect1T2 , HImage imageRect2T2 , HImage disparity , HTuple smoothingFlow , HTuple smoothingDisparity , HTuple genParamName , HTuple genParamValue , HCamPar camParamRect1 , HCamPar camParamRect2 )
HObjectModel3D HPose .SceneFlowCalib (HImage imageRect1T1 , HImage imageRect2T1 , HImage imageRect1T2 , HImage imageRect2T2 , HImage disparity , double smoothingFlow , double smoothingDisparity , string genParamName , string genParamValue , HCamPar camParamRect1 , HCamPar camParamRect2 )
def scene_flow_calib (image_rect_1t1 : HObject, image_rect_2t1 : HObject, image_rect_1t2 : HObject, image_rect_2t2 : HObject, disparity : HObject, smoothing_flow : Union[float, int], smoothing_disparity : Union[float, int], gen_param_name : MaybeSequence[str], gen_param_value : MaybeSequence[Union[int, float, str]], cam_param_rect_1 : Sequence[Union[float, int, str]], cam_param_rect_2 : Sequence[Union[float, int, str]], rel_pose_rect : Sequence[Union[float, int]]) -> Sequence[HHandle]
def scene_flow_calib_s (image_rect_1t1 : HObject, image_rect_2t1 : HObject, image_rect_1t2 : HObject, image_rect_2t2 : HObject, disparity : HObject, smoothing_flow : Union[float, int], smoothing_disparity : Union[float, int], gen_param_name : MaybeSequence[str], gen_param_value : MaybeSequence[Union[int, float, str]], cam_param_rect_1 : Sequence[Union[float, int, str]], cam_param_rect_2 : Sequence[Union[float, int, str]], rel_pose_rect : Sequence[Union[float, int]]) -> HHandle
Beschreibung
scene_flow_calib scene_flow_calib SceneFlowCalib SceneFlowCalib SceneFlowCalib scene_flow_calib berechnet den kalibrierten Szenenfluss
zwischen zwei rektifizierten aufeinanderfolgenden Stereobildpaaren.
Der Szenenfluss ist die dreidimensionale Position und Bewegung von
Oberflächenpunkten in einer dynamischen Szene. Die Bewegung in den
Bildern kann dadurch verursacht werden, dass sich Objekte oder die
Kamera (oder beides) in der Welt zwischen den Aufnahmen der beiden
Stereobilder bewegen.
Der Szenenfluss wird in dem 3D-Objektmodell ObjectModel3D ObjectModel3D ObjectModel3D ObjectModel3D objectModel3D object_model_3d
zurückgegeben. Das 3D-Objektmodell enthält die Koordinaten der
rekonstruierten 3D-Punkte. Zusätzlich wird der 3D-Fluss in dem
3D-Objektmodell durch die Attribute '&flow_x' "&flow_x" "&flow_x" "&flow_x" "&flow_x" "&flow_x" ,
'&flow_y' "&flow_y" "&flow_y" "&flow_y" "&flow_y" "&flow_y" und '&flow_z' "&flow_z" "&flow_z" "&flow_z" "&flow_z" "&flow_z" kodiert.
Die aufeinanderfolgenden Stereobildpaare werden in
ImageRect1T1 ImageRect1T1 ImageRect1T1 ImageRect1T1 imageRect1T1 image_rect_1t1 , ImageRect2T1 ImageRect2T1 ImageRect2T1 ImageRect2T1 imageRect2T1 image_rect_2t1 , ImageRect1T2 ImageRect1T2 ImageRect1T2 ImageRect1T2 imageRect1T2 image_rect_1t2
und ImageRect2T2 ImageRect2T2 ImageRect2T2 ImageRect2T2 imageRect2T2 image_rect_2t2 übergeben. Jedes Stereobildpaar muss
rektifiziert sein. Die Bildpaare können mit den Operatoren
calibrate_cameras calibrate_cameras CalibrateCameras CalibrateCameras CalibrateCameras calibrate_cameras , gen_binocular_rectification_map gen_binocular_rectification_map GenBinocularRectificationMap GenBinocularRectificationMap GenBinocularRectificationMap gen_binocular_rectification_map
und map_image map_image MapImage MapImage MapImage map_image rektifiziert werden.
Die Kamerageometrie des rektifizierten binokularen Kamerasystems
wird durch die internen Kameraparameter CamParamRect1 CamParamRect1 CamParamRect1 CamParamRect1 camParamRect1 cam_param_rect_1 der
rektifizierten Kamera 1 und CamParamRect2 CamParamRect2 CamParamRect2 CamParamRect2 camParamRect2 cam_param_rect_2 der
rektifizierten Kamera 2 und die Pose RelPoseRect RelPoseRect RelPoseRect RelPoseRect relPoseRect rel_pose_rect bestimmt,
welche die Lage des rektifizierten Kamerasystems 2 bezüglich des
rektifizierten Kamerasystems 1 beschreibt. Die Werte für diese
Kameraparameter können mit den Operatoren calibrate_cameras calibrate_cameras CalibrateCameras CalibrateCameras CalibrateCameras calibrate_cameras
und gen_binocular_rectification_map gen_binocular_rectification_map GenBinocularRectificationMap GenBinocularRectificationMap GenBinocularRectificationMap gen_binocular_rectification_map bestimmt werden. Die
Brennweite und Pixelgröße der rektifizierten Kamerasysteme 1 und 2
müssen gleich sein.
Außerdem wird ein einkanaliges Disparitätsbild Disparity Disparity Disparity Disparity disparity disparity
benötigt, welches für jedes Pixel (r,c1) des Bildes
ImageRect1T1 ImageRect1T1 ImageRect1T1 ImageRect1T1 imageRect1T1 image_rect_1t1 ein homologes Pixel (r,c2) im Bild
ImageRect2T1 ImageRect2T1 ImageRect2T1 ImageRect2T1 imageRect2T1 image_rect_2t1 festlegt. Hierbei gilt c2=c1+d(r,c1), wobei
d(r,c) die Disparität in Disparity Disparity Disparity Disparity disparity disparity am Pixel (r,c) ist.
Die Disparität kann mit binocular_disparity binocular_disparity BinocularDisparity BinocularDisparity BinocularDisparity binocular_disparity oder
binocular_disparity_mg binocular_disparity_mg BinocularDisparityMg BinocularDisparityMg BinocularDisparityMg binocular_disparity_mg berechnet werden.
Um den kalibrierten Szenenfluss zu berechnen, wird intern zunächst
scene_flow_uncalib scene_flow_uncalib SceneFlowUncalib SceneFlowUncalib SceneFlowUncalib scene_flow_uncalib ausgeführt. Die Ergebnisse werden dann
unter Verwendung der oben beschriebenen
Stereokamera-Geometrie-Parameter in 3D-Punkte und 3D-Flussvektoren
umgerechnet.
Für eine Beschreibung der weiteren Parameter von
scene_flow_calib scene_flow_calib SceneFlowCalib SceneFlowCalib SceneFlowCalib scene_flow_calib wird auf scene_flow_uncalib scene_flow_uncalib SceneFlowUncalib SceneFlowUncalib SceneFlowUncalib scene_flow_uncalib
verwiesen.
Ausführungsinformationen
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
Automatisch parallelisiert auf interner Datenebene.
Dieser Operator liefert ein Handle zurück. Es ist zu beachten, dass der Zustand einer Instanz dieses Handletyps durch bestimmte Operatoren geändert werden kann, obwohl das Handle als Eingabeparameter in diesen Operatoren verwendet wird.
Parameter
ImageRect1T1 ImageRect1T1 ImageRect1T1 ImageRect1T1 imageRect1T1 image_rect_1t1 (input_object) singlechannelimage(-array) → object HImage HObject HImage Hobject (byte / uint2 / real)
Eingabebild 1 zum Zeitpunkt
.
ImageRect2T1 ImageRect2T1 ImageRect2T1 ImageRect2T1 imageRect2T1 image_rect_2t1 (input_object) singlechannelimage(-array) → object HImage HObject HImage Hobject (byte / uint2 / real)
Eingabebild 2 zum Zeitpunkt
.
ImageRect1T2 ImageRect1T2 ImageRect1T2 ImageRect1T2 imageRect1T2 image_rect_1t2 (input_object) singlechannelimage(-array) → object HImage HObject HImage Hobject (byte / uint2 / real)
Eingabebild 1 zum Zeitpunkt
.
ImageRect2T2 ImageRect2T2 ImageRect2T2 ImageRect2T2 imageRect2T2 image_rect_2t2 (input_object) singlechannelimage(-array) → object HImage HObject HImage Hobject (byte / uint2 / real)
Eingabebild 2 zum Zeitpunkt
.
Disparity Disparity Disparity Disparity disparity disparity (input_object) singlechannelimage(-array) → object HImage HObject HImage Hobject (real)
Disparität zwischen Eingabebild 1 und 2 zum
Zeitpunkt
.
SmoothingFlow SmoothingFlow SmoothingFlow SmoothingFlow smoothingFlow smoothing_flow (input_control) number → HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Gewicht des Regularisierungsterms relativ zum
Datenterm (Ableitungen des optischen Flusses).
Defaultwert: 40.0
Wertevorschläge: 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0
Restriktion: SmoothingFlow > 0.0
SmoothingDisparity SmoothingDisparity SmoothingDisparity SmoothingDisparity smoothingDisparity smoothing_disparity (input_control) number → HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Gewicht des Regularisierungsterms relativ zum
Datenterm (Ableitungen der Änderung der Disparität).
Defaultwert: 40.0
Wertevorschläge: 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0
Restriktion: SmoothingDisparity > 0.0
GenParamName GenParamName GenParamName GenParamName genParamName gen_param_name (input_control) attribute.name(-array) → HTuple MaybeSequence[str] HTuple Htuple (string) (string ) (HString ) (char* )
Parametername(n) für den Algorithmus.
Defaultwert:
'default_parameters'
"default_parameters"
"default_parameters"
"default_parameters"
"default_parameters"
"default_parameters"
Wertevorschläge: 'default_parameters' "default_parameters" "default_parameters" "default_parameters" "default_parameters" "default_parameters" , 'warp_levels' "warp_levels" "warp_levels" "warp_levels" "warp_levels" "warp_levels" , 'warp_zoom_factor' "warp_zoom_factor" "warp_zoom_factor" "warp_zoom_factor" "warp_zoom_factor" "warp_zoom_factor" , 'warp_last_level' "warp_last_level" "warp_last_level" "warp_last_level" "warp_last_level" "warp_last_level" , 'outer_iter' "outer_iter" "outer_iter" "outer_iter" "outer_iter" "outer_iter" , 'inner_iter' "inner_iter" "inner_iter" "inner_iter" "inner_iter" "inner_iter" , 'sor_iter' "sor_iter" "sor_iter" "sor_iter" "sor_iter" "sor_iter" , 'omega' "omega" "omega" "omega" "omega" "omega"
GenParamValue GenParamValue GenParamValue GenParamValue genParamValue gen_param_value (input_control) attribute.value(-array) → HTuple MaybeSequence[Union[int, float, str]] HTuple Htuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)
Parameterwert(e) für den Algorithmus.
Defaultwert:
'accurate'
"accurate"
"accurate"
"accurate"
"accurate"
"accurate"
Wertevorschläge: 'very_accurate' "very_accurate" "very_accurate" "very_accurate" "very_accurate" "very_accurate" , 'accurate' "accurate" "accurate" "accurate" "accurate" "accurate" , 'fast' "fast" "fast" "fast" "fast" "fast" , 'very_fast' "very_fast" "very_fast" "very_fast" "very_fast" "very_fast" , 0, 1, 2, 3, 4, 5, 6, 0.5, 0.6, 0.7, 0.75, 3, 5, 7, 2, 3, 1.9
CamParamRect1 CamParamRect1 CamParamRect1 CamParamRect1 camParamRect1 cam_param_rect_1 (input_control) campar → HCamPar , HTuple Sequence[Union[float, int, str]] HTuple Htuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)
Interne Kameraparameter der projektiven
Kamera 1.
CamParamRect2 CamParamRect2 CamParamRect2 CamParamRect2 camParamRect2 cam_param_rect_2 (input_control) campar → HCamPar , HTuple Sequence[Union[float, int, str]] HTuple Htuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)
Interne Kameraparameter der projektiven
Kamera 2.
RelPoseRect RelPoseRect RelPoseRect RelPoseRect relPoseRect rel_pose_rect (input_control) pose → HPose , HTuple Sequence[Union[float, int]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Lage der zweiten Kamera bzgl. der ersten.
Parameteranzahl: 7
ObjectModel3D ObjectModel3D ObjectModel3D ObjectModel3D objectModel3D object_model_3d (output_control) object_model_3d(-array) → HObjectModel3D , HTuple Sequence[HHandle] HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Handle des erstellten 3D-Objektmodells.
Ergebnis
Sind die Parameterwerte korrekt, dann liefert scene_flow_calib scene_flow_calib SceneFlowCalib SceneFlowCalib SceneFlowCalib scene_flow_calib
den Wert 2 (H_MSG_TRUE ).
Das Verhalten bei leerer Eingabe (keine Eingabebilder vorhanden) lässt
sich mittels set_system('no_object_result',<Result>) set_system("no_object_result",<Result>) SetSystem("no_object_result",<Result>) SetSystem("no_object_result",<Result>) SetSystem("no_object_result",<Result>) set_system("no_object_result",<Result>)
festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
binocular_disparity binocular_disparity BinocularDisparity BinocularDisparity BinocularDisparity binocular_disparity ,
binocular_disparity_mg binocular_disparity_mg BinocularDisparityMg BinocularDisparityMg BinocularDisparityMg binocular_disparity_mg
Alternativen
scene_flow_uncalib scene_flow_uncalib SceneFlowUncalib SceneFlowUncalib SceneFlowUncalib scene_flow_uncalib ,
optical_flow_mg optical_flow_mg OpticalFlowMg OpticalFlowMg OpticalFlowMg optical_flow_mg
Literatur
A. Wedel, C. Rabe, T. Vaudrey, T. Brox, U. Franke and D. Cremers:
„Efficient dense scene flow from sparse or dense stereo data“;
In: Proceedings of the 10th European Conference on Computer Vision:
Part I, pages 739-751. Springer-Verlag, 2008.
Modul
Foundation