Name
intersect_lines_of_sightT_intersect_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)
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)
Ausgehend von zwei Sichtstrahlen von unterschiedlichen Kameras,
welche durch die beiden Bildpunkte (Row1Row1Row1Row1row1,Col1Col1Col1Col1col1) in
Kamera 1 und (Row1Row1Row1Row1row1,Col1Col1Col1Col1col1) in Kamera 2 festgelegt
werden, errechnet intersect_lines_of_sightintersect_lines_of_sightIntersectLinesOfSightIntersectLinesOfSightIntersectLinesOfSight den 3D
Schnittpunkt dieser Strahlen. Das binokulare Kamerasystem wird zum
einen durch seine internen Parameter CamParam1CamParam1CamParam1CamParam1camParam1 der projektiven
Kamera 1 und CamParam2CamParam2CamParam2CamParam2camParam2 der projektiven Kamera 2 definiert, und zum
anderen durch seine externen Parameter RelPoseRelPoseRelPoseRelPoserelPose, 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_camerasCalibrateCamerasCalibrateCamerasCalibrateCameras, wenn
sich die Koordinaten der Bildpunkte (Row1Row1Row1Row1row1,Col1Col1Col1Col1col1)
und (Row2Row2Row2Row2row2,Col2Col2Col2Col2col2) 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_mapGenBinocularRectificationMapGenBinocularRectificationMapGenBinocularRectificationMap liefert. Der 'Schnittpunkt'
schließlich wird als der Punkt mit dem kleinsten Abstand zu beiden
Sichtstrahlen definiert. Dieser Punkt wird in karthesischen
Koordinaten (XXXXx,YYYYy,ZZZZz) des Kamerasystems 1
zurückgegeben, seinen Abstand zu den Sichtstrahlen liefert der
Parameter DistDistDistDistdist.
- 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.
Interne parameter der projektiven Kamera 2.
Punkttransformation von Kamera 2 zu Kamera 1.
Parameteranzahl: 7
Zeilenkoordinate eines Punktes im Bild 1.
Spaltenkoordinate eines Punktes im Bild 1.
Zeilenkoordinate des korrespondierenden Punktes
im Bild 2.
Spaltenkoordinate des korrespondierenden Punktes im
Bild 2.
XXXXx (output_control) real(-array) → HTupleHTupleHtuple (real) (double) (double) (double)
X-Koordinate des Weltpunktes.
YYYYy (output_control) real(-array) → HTupleHTupleHtuple (real) (double) (double) (double)
Y-Koordinate des Weltpunktes.
ZZZZz (output_control) real(-array) → HTupleHTupleHtuple (real) (double) (double) (double)
Z-Koordinate des Weltpunktes.
Abstand des 3D Punktes zu den Sehstrahlen.
Sind die Parameterwerte korrekt, dann liefert
distance_to_disparitydistance_to_disparityDistanceToDisparityDistanceToDisparityDistanceToDisparity den Wert 2 (H_MSG_TRUE).
binocular_calibrationbinocular_calibrationBinocularCalibrationBinocularCalibrationBinocularCalibration
disparity_to_point_3ddisparity_to_point_3dDisparityToPoint3dDisparityToPoint3dDisparityToPoint3d
3D Metrology