scene_flow_calibT_scene_flow_calibSceneFlowCalibSceneFlowCalib (Operator)

Name

scene_flow_calibT_scene_flow_calibSceneFlowCalibSceneFlowCalib — 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)

Beschreibung

scene_flow_calibscene_flow_calibSceneFlowCalibSceneFlowCalibSceneFlowCalib 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 ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3D 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_y'"&flow_y""&flow_y""&flow_y""&flow_y" und '&flow_z'"&flow_z""&flow_z""&flow_z""&flow_z" kodiert.

Die aufeinanderfolgenden Stereobildpaare werden in ImageRect1T1ImageRect1T1ImageRect1T1ImageRect1T1imageRect1T1, ImageRect2T1ImageRect2T1ImageRect2T1ImageRect2T1imageRect2T1, ImageRect1T2ImageRect1T2ImageRect1T2ImageRect1T2imageRect1T2 und ImageRect2T2ImageRect2T2ImageRect2T2ImageRect2T2imageRect2T2 übergeben. Jedes Stereobildpaar muss rektifiziert sein. Die Bildpaare können mit den Operatoren calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCameras, gen_binocular_rectification_mapgen_binocular_rectification_mapGenBinocularRectificationMapGenBinocularRectificationMapGenBinocularRectificationMap und map_imagemap_imageMapImageMapImageMapImage rektifiziert werden.

Die Kamerageometrie des rektifizierten binokularen Kamerasystems wird durch die internen Kameraparameter CamParamRect1CamParamRect1CamParamRect1CamParamRect1camParamRect1 der rektifizierten Kamera 1 und CamParamRect2CamParamRect2CamParamRect2CamParamRect2camParamRect2 der rektifizierten Kamera 2 und die Pose RelPoseRectRelPoseRectRelPoseRectRelPoseRectrelPoseRect 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_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCameras und gen_binocular_rectification_mapgen_binocular_rectification_mapGenBinocularRectificationMapGenBinocularRectificationMapGenBinocularRectificationMap bestimmt werden. Die Brennweite und Pixelgröße der rektifizierten Kamerasysteme 1 und 2 müssen gleich sein.

Außerdem wird ein einkanaliges Disparitätsbild DisparityDisparityDisparityDisparitydisparity benötigt, welches für jedes Pixel (r,c1) des Bildes ImageRect1T1ImageRect1T1ImageRect1T1ImageRect1T1imageRect1T1 ein homologes Pixel (r,c2) im Bild ImageRect2T1ImageRect2T1ImageRect2T1ImageRect2T1imageRect2T1 festlegt. Hierbei gilt c2=c1+d(r,c1), wobei d(r,c) die Disparitäit in DisparityDisparityDisparityDisparitydisparity am Pixel (r,c) ist. Die Disparität kann mit binocular_disparitybinocular_disparityBinocularDisparityBinocularDisparityBinocularDisparity oder binocular_disparity_mgbinocular_disparity_mgBinocularDisparityMgBinocularDisparityMgBinocularDisparityMg berechnet werden.

Um den kalibrierten Szenenfluss zu berechnen, wird intern zunächst scene_flow_uncalibscene_flow_uncalibSceneFlowUncalibSceneFlowUncalibSceneFlowUncalib 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_calibscene_flow_calibSceneFlowCalibSceneFlowCalibSceneFlowCalib wird auf scene_flow_uncalibscene_flow_uncalibSceneFlowUncalibSceneFlowUncalibSceneFlowUncalib verwiesen.

Ausführungsinformationen

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

ImageRect1T1ImageRect1T1ImageRect1T1ImageRect1T1imageRect1T1 (input_object)  singlechannelimage(-array) objectHImageHImageHobject (byte / uint2 / real)

Eingabebild 1 zum Zeitpunkt .

ImageRect2T1ImageRect2T1ImageRect2T1ImageRect2T1imageRect2T1 (input_object)  singlechannelimage(-array) objectHImageHImageHobject (byte / uint2 / real)

Eingabebild 2 zum Zeitpunkt .

ImageRect1T2ImageRect1T2ImageRect1T2ImageRect1T2imageRect1T2 (input_object)  singlechannelimage(-array) objectHImageHImageHobject (byte / uint2 / real)

Eingabebild 1 zum Zeitpunkt .

ImageRect2T2ImageRect2T2ImageRect2T2ImageRect2T2imageRect2T2 (input_object)  singlechannelimage(-array) objectHImageHImageHobject (byte / uint2 / real)

Eingabebild 2 zum Zeitpunkt .

DisparityDisparityDisparityDisparitydisparity (input_object)  singlechannelimage(-array) objectHImageHImageHobject (real)

Dispartät zwischen Eingabebild 1 und 2 zum Zeitpunkt .

SmoothingFlowSmoothingFlowSmoothingFlowSmoothingFlowsmoothingFlow (input_control)  number HTupleHTupleHtuple (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

SmoothingDisparitySmoothingDisparitySmoothingDisparitySmoothingDisparitysmoothingDisparity (input_control)  number HTupleHTupleHtuple (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

GenParamNameGenParamNameGenParamNameGenParamNamegenParamName (input_control)  attribute.name(-array) HTupleHTupleHtuple (string) (string) (HString) (char*)

Parametername(n) für den Algorithmus.

Defaultwert: 'default_parameters' "default_parameters" "default_parameters" "default_parameters" "default_parameters"

Wertevorschläge: 'default_parameters'"default_parameters""default_parameters""default_parameters""default_parameters", '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_last_level'"warp_last_level""warp_last_level""warp_last_level""warp_last_level", 'outer_iter'"outer_iter""outer_iter""outer_iter""outer_iter", 'inner_iter'"inner_iter""inner_iter""inner_iter""inner_iter", 'sor_iter'"sor_iter""sor_iter""sor_iter""sor_iter", 'omega'"omega""omega""omega""omega"

GenParamValueGenParamValueGenParamValueGenParamValuegenParamValue (input_control)  attribute.value(-array) HTupleHTupleHtuple (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"

Wertevorschläge: 'very_accurate'"very_accurate""very_accurate""very_accurate""very_accurate", 'accurate'"accurate""accurate""accurate""accurate", 'fast'"fast""fast""fast""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

CamParamRect1CamParamRect1CamParamRect1CamParamRect1camParamRect1 (input_control)  campar HCamPar, HTupleHTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)

Interne Kameraparameter der projektiven Kamera 1.

CamParamRect2CamParamRect2CamParamRect2CamParamRect2camParamRect2 (input_control)  campar HCamPar, HTupleHTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)

Interne Kameraparameter der projektiven Kamera 2.

RelPoseRectRelPoseRectRelPoseRectRelPoseRectrelPoseRect (input_control)  pose HPose, HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Lage der zweiten Kamera bzgl. der ersten.

Parameteranzahl: 7

ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3D (output_control)  object_model_3d(-array) HObjectModel3D, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des erstellten 3D-Objektmodells.

Ergebnis

If the parameter values are correct, the operator scene_flow_calibscene_flow_calibSceneFlowCalibSceneFlowCalibSceneFlowCalib returns the value 2 (H_MSG_TRUE). If the input is empty (no input images are available) the behavior can be set via 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>). If necessary, an exception is raised.

Vorgänger

binocular_disparitybinocular_disparityBinocularDisparityBinocularDisparityBinocularDisparity, binocular_disparity_mgbinocular_disparity_mgBinocularDisparityMgBinocularDisparityMgBinocularDisparityMg

Alternativen

scene_flow_uncalibscene_flow_uncalibSceneFlowUncalibSceneFlowUncalibSceneFlowUncalib, optical_flow_mgoptical_flow_mgOpticalFlowMgOpticalFlowMgOpticalFlowMg

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