intersect_lines_of_sightT_intersect_lines_of_sightIntersectLinesOfSightIntersectLinesOfSight (Operator)

Name

intersect_lines_of_sightT_intersect_lines_of_sightIntersectLinesOfSightIntersectLinesOfSight — Berechnet einen Weltpunkt aus dem Schnitt von zwei Sichtlinien in einem binokularen Kamerasystem.

Signatur

intersect_lines_of_sight( : : CamParam1, CamParam2, RelPose, Row1, Col1, Row2, Col2 : X, Y, Z, Dist)

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 (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. 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_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.

Achtung

Stereosysteme, die sowohl Kameras mit hyperzentrischen Objektiven als auch Kameras ohne hyperzentrische Objektive enthalten, werden nicht unterstützt.

Ausführungsinformationen

Parameter

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

Interne Parameter der projektiven Kamera 1.

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

Interne parameter der projektiven Kamera 2.

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

Punkttransformation von Kamera 2 zu Kamera 1.

Parameteranzahl: 7

Row1Row1Row1Row1row1 (input_control)  number(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Zeilenkoordinate eines Punktes im Bild 1.

Col1Col1Col1Col1col1 (input_control)  number(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Spaltenkoordinate eines Punktes im Bild 1.

Row2Row2Row2Row2row2 (input_control)  number(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Zeilenkoordinate des korrespondierenden Punktes im Bild 2.

Col2Col2Col2Col2col2 (input_control)  number(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

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.

DistDistDistDistdist (output_control)  real(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Abstand des 3D Punktes zu den Sehstrahlen.

Ergebnis

Sind die Parameterwerte korrekt, dann liefert distance_to_disparitydistance_to_disparityDistanceToDisparityDistanceToDisparityDistanceToDisparity den Wert 2 (H_MSG_TRUE).

Vorgänger

binocular_calibrationbinocular_calibrationBinocularCalibrationBinocularCalibrationBinocularCalibration

Siehe auch

disparity_to_point_3ddisparity_to_point_3dDisparityToPoint3dDisparityToPoint3dDisparityToPoint3d

Modul

3D Metrology