scene_flow_calib T_scene_flow_calib SceneFlowCalib SceneFlowCalib (Operator)
Name
scene_flow_calib T_scene_flow_calib SceneFlowCalib SceneFlowCalib
— 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_calib scene_flow_calib SceneFlowCalib SceneFlowCalib SceneFlowCalib
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
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
ImageRect1T1 ImageRect1T1 ImageRect1T1 ImageRect1T1 imageRect1T1
, ImageRect2T1 ImageRect2T1 ImageRect2T1 ImageRect2T1 imageRect2T1
, ImageRect1T2 ImageRect1T2 ImageRect1T2 ImageRect1T2 imageRect1T2
und ImageRect2T2 ImageRect2T2 ImageRect2T2 ImageRect2T2 imageRect2T2
übergeben. Jedes Stereobildpaar muss
rektifiziert sein. Die Bildpaare können mit den Operatoren
calibrate_cameras calibrate_cameras CalibrateCameras CalibrateCameras CalibrateCameras
, gen_binocular_rectification_map gen_binocular_rectification_map GenBinocularRectificationMap GenBinocularRectificationMap GenBinocularRectificationMap
und map_image map_image MapImage MapImage MapImage
rektifiziert werden.
Die Kamerageometrie des rektifizierten binokularen Kamerasystems
wird durch die internen Kameraparameter CamParamRect1 CamParamRect1 CamParamRect1 CamParamRect1 camParamRect1
der
rektifizierten Kamera 1 und CamParamRect2 CamParamRect2 CamParamRect2 CamParamRect2 camParamRect2
der
rektifizierten Kamera 2 und die Pose RelPoseRect RelPoseRect RelPoseRect RelPoseRect relPoseRect
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
und gen_binocular_rectification_map gen_binocular_rectification_map GenBinocularRectificationMap GenBinocularRectificationMap GenBinocularRectificationMap
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
benötigt, welches für jedes Pixel (r,c1) des Bildes
ImageRect1T1 ImageRect1T1 ImageRect1T1 ImageRect1T1 imageRect1T1
ein homologes Pixel (r,c2) im Bild
ImageRect2T1 ImageRect2T1 ImageRect2T1 ImageRect2T1 imageRect2T1
festlegt. Hierbei gilt c2=c1+d(r,c1), wobei
d(r,c) die Disparitäit in Disparity Disparity Disparity Disparity disparity
am Pixel (r,c) ist.
Die Disparität kann mit binocular_disparity binocular_disparity BinocularDisparity BinocularDisparity BinocularDisparity
oder
binocular_disparity_mg binocular_disparity_mg BinocularDisparityMg BinocularDisparityMg BinocularDisparityMg
berechnet werden.
Um den kalibrierten Szenenfluss zu berechnen, wird intern zunächst
scene_flow_uncalib scene_flow_uncalib SceneFlowUncalib SceneFlowUncalib SceneFlowUncalib
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
wird auf scene_flow_uncalib scene_flow_uncalib SceneFlowUncalib SceneFlowUncalib SceneFlowUncalib
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
(input_object) singlechannelimage(-array) →
object HImage HImage Hobject (byte / uint2 / real)
Eingabebild 1 zum Zeitpunkt
.
ImageRect2T1 ImageRect2T1 ImageRect2T1 ImageRect2T1 imageRect2T1
(input_object) singlechannelimage(-array) →
object HImage HImage Hobject (byte / uint2 / real)
Eingabebild 2 zum Zeitpunkt
.
ImageRect1T2 ImageRect1T2 ImageRect1T2 ImageRect1T2 imageRect1T2
(input_object) singlechannelimage(-array) →
object HImage HImage Hobject (byte / uint2 / real)
Eingabebild 1 zum Zeitpunkt
.
ImageRect2T2 ImageRect2T2 ImageRect2T2 ImageRect2T2 imageRect2T2
(input_object) singlechannelimage(-array) →
object HImage HImage Hobject (byte / uint2 / real)
Eingabebild 2 zum Zeitpunkt
.
Disparity Disparity Disparity Disparity disparity
(input_object) singlechannelimage(-array) →
object HImage HImage Hobject (real)
Dispartät zwischen Eingabebild 1 und 2 zum
Zeitpunkt
.
SmoothingFlow SmoothingFlow SmoothingFlow SmoothingFlow smoothingFlow
(input_control) number →
HTuple 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
(input_control) number →
HTuple 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
(input_control) attribute.name(-array) →
HTuple HTuple Htuple (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"
GenParamValue GenParamValue GenParamValue GenParamValue genParamValue
(input_control) attribute.value(-array) →
HTuple 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"
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
CamParamRect1 CamParamRect1 CamParamRect1 CamParamRect1 camParamRect1
(input_control) campar →
HCamPar , HTuple 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
(input_control) campar →
HCamPar , HTuple 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
(input_control) pose →
HPose , HTuple 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
(output_control) object_model_3d(-array) →
HObjectModel3D , HTuple HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Handle des erstellten 3D-Objektmodells.
Ergebnis
If the parameter values are correct, the operator
scene_flow_calib scene_flow_calib SceneFlowCalib SceneFlowCalib SceneFlowCalib
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_disparity binocular_disparity BinocularDisparity BinocularDisparity BinocularDisparity
,
binocular_disparity_mg binocular_disparity_mg BinocularDisparityMg BinocularDisparityMg BinocularDisparityMg
Alternativen
scene_flow_uncalib scene_flow_uncalib SceneFlowUncalib SceneFlowUncalib SceneFlowUncalib
,
optical_flow_mg optical_flow_mg OpticalFlowMg OpticalFlowMg OpticalFlowMg
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