Name
intersect_lines_of_sightT_intersect_lines_of_sightIntersectLinesOfSightintersect_lines_of_sightIntersectLinesOfSightIntersectLinesOfSight — Berechnet einen Weltpunkt aus dem Schnitt von zwei Sichtlinien in
einem binokularen Kamerasystem.
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)
Herror 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, double* X, double* Y, double* Z, double* Dist)
Herror 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)
static void HMisc::IntersectLinesOfSight(const HTuple& CamParam1, const HTuple& CamParam2, const HPose& RelPose, const HTuple& Row1, const HTuple& Col1, const HTuple& Row2, const HTuple& Col2, HTuple* X, HTuple* Y, HTuple* Z, HTuple* Dist)
static void HMisc::IntersectLinesOfSight(const HTuple& CamParam1, const HTuple& CamParam2, const HPose& RelPose, double Row1, double Col1, double Row2, double Col2, double* X, double* Y, double* Z, double* Dist)
void HOperatorSetX.IntersectLinesOfSight(
[in] VARIANT CamParam1, [in] VARIANT CamParam2, [in] VARIANT RelPose, [in] VARIANT Row1, [in] VARIANT Col1, [in] VARIANT Row2, [in] VARIANT Col2, [out] VARIANT* X, [out] VARIANT* Y, [out] VARIANT* Z, [out] VARIANT* Dist)
VARIANT HMiscX.IntersectLinesOfSight(
[in] VARIANT CamParam1, [in] VARIANT CamParam2, [in] VARIANT RelPose, [in] VARIANT Row1, [in] VARIANT Col1, [in] VARIANT Row2, [in] VARIANT Col2, [out] VARIANT* Y, [out] VARIANT* Z, [out] VARIANT* Dist)
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)
static void HMisc.IntersectLinesOfSight(HTuple camParam1, HTuple camParam2, HPose relPose, HTuple row1, HTuple col1, HTuple row2, HTuple col2, out HTuple x, out HTuple y, out HTuple z, out HTuple dist)
static void HMisc.IntersectLinesOfSight(HTuple camParam1, HTuple camParam2, HPose relPose, double row1, double col1, double row2, double col2, out double x, out double y, out double z, out double dist)
Ausgehend von zwei Sichtstrahlen von unterschiedlichen Kameras,
welche durch die beiden Bildpunkte (Row1Row1Row1Row1Row1row1,Col1Col1Col1Col1Col1col1) in
Kamera 1 und (Row1Row1Row1Row1Row1row1,Col1Col1Col1Col1Col1col1) in Kamera 2 festgelegt
werden, errechnet intersect_lines_of_sightintersect_lines_of_sightIntersectLinesOfSightintersect_lines_of_sightIntersectLinesOfSightIntersectLinesOfSight den 3D
Schnittpunkt dieser Strahlen. Das binokulare Kamerasystem wird zum
einen durch seine internen Parameter CamParam1CamParam1CamParam1CamParam1CamParam1camParam1 der projektiven
Kamera 1 und CamParam2CamParam2CamParam2CamParam2CamParam2camParam2 der projektiven Kamera 2 definiert, und zum
anderen durch seine externen Parameter RelPoseRelPoseRelPoseRelPoseRelPoserelPose, welche die Lage der
Kameras durch eine Punkttransformation von Kamera 2 zu Kamera 1 bestimmen.
Diese Kameraparameter erhält
man beispielsweise vom Operator calibrate_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras, wenn
sich die Koordinaten der Bildpunkte (Row1Row1Row1Row1Row1row1,Col1Col1Col1Col1Col1col1)
und (Row2Row2Row2Row2Row2row2,Col2Col2Col2Col2Col2col2) 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_mapgen_binocular_rectification_mapGenBinocularRectificationMapgen_binocular_rectification_mapGenBinocularRectificationMapGenBinocularRectificationMap liefert. Der 'Schnittpunkt'
schließlich wird als der Punkt mit dem kleinsten Abstand zu beiden
Sichtstrahlen definiert. Dieser Punkt wird in karthesischen
Koordinaten (XXXXXx,YYYYYy,ZZZZZz) des Kamerasystems 1
zurückgegeben, seinen Abstand zu den Sichtstrahlen liefert der
Parameter DistDistDistDistDistdist.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Interne Parameter der projektiven Kamera 1.
Parameteranzahl: CamParam1 == 8 || CamParam1 == 10 || CamParam1 == 12 || CamParam1 == 14
Interne parameter der projektiven Kamera 2.
Parameteranzahl: CamParam2 == 8 || CamParam2 == 10 || CamParam2 == 12 || CamParam2 == 14
Punkttransformation von Kamera 2 zu Kamera 1.
Parameteranzahl: 7
Row1Row1Row1Row1Row1row1 (input_control) number(-array) → HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)
Zeilenkoordinate eines Punktes im Bild 1.
Col1Col1Col1Col1Col1col1 (input_control) number(-array) → HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)
Spaltenkoordinate eines Punktes im Bild 1.
Row2Row2Row2Row2Row2row2 (input_control) number(-array) → HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)
Zeilenkoordinate des korrespondierenden Punktes
im Bild 2.
Col2Col2Col2Col2Col2col2 (input_control) number(-array) → HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)
Spaltenkoordinate des korrespondierenden Punktes im
Bild 2.
XXXXXx (output_control) real(-array) → HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)
X-Koordinate des Weltpunktes.
YYYYYy (output_control) real(-array) → HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)
Y-Koordinate des Weltpunktes.
ZZZZZz (output_control) real(-array) → HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)
Z-Koordinate des Weltpunktes.
Abstand des 3D Punktes zu den Sehstrahlen.
Sind die Parameterwerte korrekt, dann liefert
distance_to_disparitydistance_to_disparityDistanceToDisparitydistance_to_disparityDistanceToDisparityDistanceToDisparity den Wert 2 (H_MSG_TRUE).
binocular_calibrationbinocular_calibrationBinocularCalibrationbinocular_calibrationBinocularCalibrationBinocularCalibration
disparity_to_point_3ddisparity_to_point_3dDisparityToPoint3ddisparity_to_point_3dDisparityToPoint3dDisparityToPoint3d
3D Metrology