intersect_lines_of_sight T_intersect_lines_of_sight IntersectLinesOfSight IntersectLinesOfSight (Operator)
Name
intersect_lines_of_sight T_intersect_lines_of_sight IntersectLinesOfSight IntersectLinesOfSight
— Berechnet einen Weltpunkt aus dem Schnitt von zwei Sichtlinien in
einem binokularen Kamerasystem.
Signatur
Herror T_intersect_lines_of_sight (const Htuple CamParam1 , const Htuple CamParam2 , const Htuple RelPose , const Htuple Row1 , const Htuple Col1 , const Htuple Row2 , const Htuple Col2 , Htuple* X , Htuple* Y , Htuple* Z , Htuple* Dist )
void IntersectLinesOfSight (const HTuple& CamParam1 , const HTuple& CamParam2 , const HTuple& RelPose , const HTuple& Row1 , const HTuple& Col1 , const HTuple& Row2 , const HTuple& Col2 , HTuple* X , HTuple* Y , HTuple* Z , HTuple* Dist )
void HCamPar ::IntersectLinesOfSight (const HCamPar& CamParam2 , const HPose& RelPose , const HTuple& Row1 , const HTuple& Col1 , const HTuple& Row2 , const HTuple& Col2 , HTuple* X , HTuple* Y , HTuple* Z , HTuple* Dist ) const
void HCamPar ::IntersectLinesOfSight (const HCamPar& CamParam2 , const HPose& RelPose , double Row1 , double Col1 , double Row2 , double Col2 , double* X , double* Y , double* Z , double* Dist ) const
void HPose ::IntersectLinesOfSight (const HCamPar& CamParam1 , const HCamPar& CamParam2 , const HTuple& Row1 , const HTuple& Col1 , const HTuple& Row2 , const HTuple& Col2 , HTuple* X , HTuple* Y , HTuple* Z , HTuple* Dist ) const
void HPose ::IntersectLinesOfSight (const HCamPar& CamParam1 , const HCamPar& CamParam2 , double Row1 , double Col1 , double Row2 , double Col2 , double* X , double* Y , double* Z , double* Dist ) const
static void HOperatorSet .IntersectLinesOfSight (HTuple camParam1 , HTuple camParam2 , HTuple relPose , HTuple row1 , HTuple col1 , HTuple row2 , HTuple col2 , out HTuple x , out HTuple y , out HTuple z , out HTuple dist )
void HCamPar .IntersectLinesOfSight (HCamPar camParam2 , HPose relPose , HTuple row1 , HTuple col1 , HTuple row2 , HTuple col2 , out HTuple x , out HTuple y , out HTuple z , out HTuple dist )
void HCamPar .IntersectLinesOfSight (HCamPar camParam2 , HPose relPose , double row1 , double col1 , double row2 , double col2 , out double x , out double y , out double z , out double dist )
void HPose .IntersectLinesOfSight (HCamPar camParam1 , HCamPar camParam2 , HTuple row1 , HTuple col1 , HTuple row2 , HTuple col2 , out HTuple x , out HTuple y , out HTuple z , out HTuple dist )
void HPose .IntersectLinesOfSight (HCamPar camParam1 , HCamPar camParam2 , double row1 , double col1 , double row2 , double col2 , out double x , out double y , out double z , out double dist )
Beschreibung
Ausgehend von zwei Sichtstrahlen von unterschiedlichen Kameras,
welche durch die beiden Bildpunkte (Row1 Row1 Row1 Row1 row1
,Col1 Col1 Col1 Col1 col1
) in
Kamera 1 und (Row1 Row1 Row1 Row1 row1
,Col1 Col1 Col1 Col1 col1
) in Kamera 2 festgelegt
werden, errechnet intersect_lines_of_sight intersect_lines_of_sight IntersectLinesOfSight IntersectLinesOfSight IntersectLinesOfSight
den 3D
Schnittpunkt dieser Strahlen. Das binokulare Kamerasystem wird zum
einen durch seine internen Parameter CamParam1 CamParam1 CamParam1 CamParam1 camParam1
der projektiven
Kamera 1 und CamParam2 CamParam2 CamParam2 CamParam2 camParam2
der projektiven Kamera 2 definiert, und zum
anderen durch seine externen Parameter RelPose RelPose RelPose RelPose relPose
.
Letzteres ist eine Pose, die in der Form
erwartet wird. Sie beschreibt
die Lage des Kamerakoordinatensystem 2 (ccs2 ) bezüglich des
Kamerakoordinatensystems 1 (ccs1 ).
Siehe auch Transformationen / Posen und
„Solution Guide III-C - 3D Vision“
.
Diese Kameraparameter erhält
man beispielsweise vom Operator calibrate_cameras calibrate_cameras CalibrateCameras CalibrateCameras CalibrateCameras
, wenn
sich die Koordinaten der Bildpunkte (Row1 Row1 Row1 Row1 row1
,Col1 Col1 Col1 Col1 col1
)
und (Row2 Row2 Row2 Row2 row2
,Col2 Col2 Col2 Col2 col2
) auf das entsprechende
ursprüngliche Bildkoordinatensystem beziehen. Im Falle von
entzerrten Bildkoordinaten (wie man sie von rektifizierten Bildern erhält)
müssen die entsprechend entzerrten Kameraparameter übergeben werden,
wie sie beispielsweise der Operator
gen_binocular_rectification_map gen_binocular_rectification_map GenBinocularRectificationMap GenBinocularRectificationMap GenBinocularRectificationMap
liefert. Der 'Schnittpunkt'
schließlich wird als der Punkt mit dem kleinsten Abstand zu beiden
Sichtstrahlen definiert. Dieser Punkt wird in karthesischen
Koordinaten (X X X X x
,Y Y Y Y y
,Z Z Z Z z
) des Kamerasystems 1
zurückgegeben, seinen Abstand zu den Sichtstrahlen liefert der
Parameter Dist Dist Dist Dist dist
.
Achtung
Stereosysteme, die sowohl Kameras mit hyperzentrischen Objektiven
als auch Kameras ohne hyperzentrische Objektive enthalten, werden nicht
unterstützt.
Ausführungsinformationen
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
Wird ohne Parallelisierung verarbeitet.
Parameter
CamParam1 CamParam1 CamParam1 CamParam1 camParam1
(input_control) campar →
HCamPar , HTuple HTuple Htuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)
Interne Parameter der projektiven Kamera 1.
CamParam2 CamParam2 CamParam2 CamParam2 camParam2
(input_control) campar →
HCamPar , HTuple HTuple Htuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)
Interne parameter der projektiven Kamera 2.
RelPose RelPose RelPose RelPose relPose
(input_control) pose →
HPose , HTuple HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Punkttransformation von Kamera 2 zu Kamera 1.
Parameteranzahl: 7
Row1 Row1 Row1 Row1 row1
(input_control) number(-array) →
HTuple HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Zeilenkoordinate eines Punktes im Bild 1.
Col1 Col1 Col1 Col1 col1
(input_control) number(-array) →
HTuple HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Spaltenkoordinate eines Punktes im Bild 1.
Row2 Row2 Row2 Row2 row2
(input_control) number(-array) →
HTuple HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Zeilenkoordinate des korrespondierenden Punktes
im Bild 2.
Col2 Col2 Col2 Col2 col2
(input_control) number(-array) →
HTuple HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Spaltenkoordinate des korrespondierenden Punktes im
Bild 2.
X X X X x
(output_control) real(-array) →
HTuple HTuple Htuple (real) (double ) (double ) (double )
X-Koordinate des Weltpunktes.
Y Y Y Y y
(output_control) real(-array) →
HTuple HTuple Htuple (real) (double ) (double ) (double )
Y-Koordinate des Weltpunktes.
Z Z Z Z z
(output_control) real(-array) →
HTuple HTuple Htuple (real) (double ) (double ) (double )
Z-Koordinate des Weltpunktes.
Dist Dist Dist Dist dist
(output_control) real(-array) →
HTuple HTuple Htuple (real) (double ) (double ) (double )
Abstand des 3D Punktes zu den Sehstrahlen.
Ergebnis
Sind die Parameterwerte korrekt, dann liefert
distance_to_disparity distance_to_disparity DistanceToDisparity DistanceToDisparity DistanceToDisparity
den Wert 2 (H_MSG_TRUE).
Vorgänger
binocular_calibration binocular_calibration BinocularCalibration BinocularCalibration BinocularCalibration
Siehe auch
disparity_to_point_3d disparity_to_point_3d DisparityToPoint3d DisparityToPoint3d DisparityToPoint3d
Modul
3D Metrology