project_3d_pointT_project_3d_pointProject3dPointProject3dPoint (Operator)

Name

project_3d_pointT_project_3d_pointProject3dPointProject3dPoint — Projizieren von 3D-Punkten in Bildkoordinaten (Subpixel).

Signatur

project_3d_point( : : X, Y, Z, CameraParam : Row, Column)

Herror T_project_3d_point(const Htuple X, const Htuple Y, const Htuple Z, const Htuple CameraParam, Htuple* Row, Htuple* Column)

void Project3dPoint(const HTuple& X, const HTuple& Y, const HTuple& Z, const HTuple& CameraParam, HTuple* Row, HTuple* Column)

void HCamPar::Project3dPoint(const HTuple& X, const HTuple& Y, const HTuple& Z, HTuple* Row, HTuple* Column) const

static void HOperatorSet.Project3dPoint(HTuple x, HTuple y, HTuple z, HTuple cameraParam, out HTuple row, out HTuple column)

void HCamPar.Project3dPoint(HTuple x, HTuple y, HTuple z, out HTuple row, out HTuple column)

Beschreibung

project_3d_pointproject_3d_pointProject3dPointProject3dPointProject3dPoint projiziert einen oder mehrere 3D-Punkte mit den Koordinaten XXXXx, YYYYy und ZZZZz in das Bildkoordinatensystem (in Pixel) und liefert das Ergebnis in RowRowRowRowrow und ColumnColumnColumnColumncolumn zurück. Die Koordinaten XXXXx, YYYYy und ZZZZz sind Kamerakoordinaten, entsprechen also der Position der Punkte relativ zur Kamera.

Die internen Kameraparameter CameraParamCameraParamCameraParamCameraParamcameraParam beschreiben dabei die Abbildungseigenschaften der Kamera (siehe Kalibrierung).

Ausführungsinformationen

Parameter

XXXXx (input_control)  point3d.x-array HTupleHTupleHtuple (real) (double) (double) (double)

X-Koordinaten der zu projizierenden 3D-Punkte im Kamerakoordinatensystem.

YYYYy (input_control)  point3d.y-array HTupleHTupleHtuple (real) (double) (double) (double)

Y-Koordinaten der zu projizierenden 3D-Punkte im Kamerakoordinatensystem.

ZZZZz (input_control)  point3d.z-array HTupleHTupleHtuple (real) (double) (double) (double)

Z-Koordinaten der zu projizierenden 3D-Punkte im Kamerakoordinatensystem.

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

Interne Kameraparameter.

RowRowRowRowrow (output_control)  point.y-array HTupleHTupleHtuple (real) (double) (double) (double)

Zeilenkoordinaten der projizierten Punkte (in Pixel).

ColumnColumnColumnColumncolumn (output_control)  point.x-array HTupleHTupleHtuple (real) (double) (double) (double)

Spaltenkoordinaten der projizierten Punkte (in Pixel).

Beispiel (HDevelop)

* Set internal camera parameters and pose of the world coordinate
* system in camera coordinates.
* Note that, typically, these values are the result of a prior
* calibration.
gen_cam_par_area_scan_division (0.01, -731, 5.2e-006, 5.2e-006, \
                                654, 519, 1280, 1024, CameraParam)
create_pose (0.1, 0.2, 0.3, 40, 50, 60, \
             'Rp+T', 'gba', 'point', WorldPose)
* Convert pose into transformation matrix.
pose_to_hom_mat3d(WorldPose, HomMat3D)
* Transform 3D points from world into the camera coordinate system.
affine_trans_point_3d(HomMat3D, [3.0, 3.2], [4.5, 4.5], [3.8, 4.2], X, Y, Z)
* Project 3D points into image.
project_3d_point(X, Y, Z, CameraParam, Row, Column)

Beispiel (HDevelop)

* Set internal camera parameters and pose of the world coordinate
* system in camera coordinates.
* Note that, typically, these values are the result of a prior
* calibration.
gen_cam_par_area_scan_division (0.01, -731, 5.2e-006, 5.2e-006, \
                                654, 519, 1280, 1024, CameraParam)
create_pose (0.1, 0.2, 0.3, 40, 50, 60, \
             'Rp+T', 'gba', 'point', WorldPose)
* Convert pose into transformation matrix.
pose_to_hom_mat3d(WorldPose, HomMat3D)
* Transform 3D points from world into the camera coordinate system.
affine_trans_point_3d(HomMat3D, [3.0, 3.2], [4.5, 4.5], [3.8, 4.2], X, Y, Z)
* Project 3D points into image.
project_3d_point(X, Y, Z, CameraParam, Row, Column)

Beispiel (HDevelop)

* Set internal camera parameters and pose of the world coordinate
* system in camera coordinates.
* Note that, typically, these values are the result of a prior
* calibration.
gen_cam_par_area_scan_division (0.01, -731, 5.2e-006, 5.2e-006, \
                                654, 519, 1280, 1024, CameraParam)
create_pose (0.1, 0.2, 0.3, 40, 50, 60, \
             'Rp+T', 'gba', 'point', WorldPose)
* Convert pose into transformation matrix.
pose_to_hom_mat3d(WorldPose, HomMat3D)
* Transform 3D points from world into the camera coordinate system.
affine_trans_point_3d(HomMat3D, [3.0, 3.2], [4.5, 4.5], [3.8, 4.2], X, Y, Z)
* Project 3D points into image.
project_3d_point(X, Y, Z, CameraParam, Row, Column)

Beispiel (HDevelop)

* Set internal camera parameters and pose of the world coordinate
* system in camera coordinates.
* Note that, typically, these values are the result of a prior
* calibration.
gen_cam_par_area_scan_division (0.01, -731, 5.2e-006, 5.2e-006, \
                                654, 519, 1280, 1024, CameraParam)
create_pose (0.1, 0.2, 0.3, 40, 50, 60, \
             'Rp+T', 'gba', 'point', WorldPose)
* Convert pose into transformation matrix.
pose_to_hom_mat3d(WorldPose, HomMat3D)
* Transform 3D points from world into the camera coordinate system.
affine_trans_point_3d(HomMat3D, [3.0, 3.2], [4.5, 4.5], [3.8, 4.2], X, Y, Z)
* Project 3D points into image.
project_3d_point(X, Y, Z, CameraParam, Row, Column)

Beispiel (HDevelop)

* Set internal camera parameters and pose of the world coordinate
* system in camera coordinates.
* Note that, typically, these values are the result of a prior
* calibration.
gen_cam_par_area_scan_division (0.01, -731, 5.2e-006, 5.2e-006, \
                                654, 519, 1280, 1024, CameraParam)
create_pose (0.1, 0.2, 0.3, 40, 50, 60, \
             'Rp+T', 'gba', 'point', WorldPose)
* Convert pose into transformation matrix.
pose_to_hom_mat3d(WorldPose, HomMat3D)
* Transform 3D points from world into the camera coordinate system.
affine_trans_point_3d(HomMat3D, [3.0, 3.2], [4.5, 4.5], [3.8, 4.2], X, Y, Z)
* Project 3D points into image.
project_3d_point(X, Y, Z, CameraParam, Row, Column)

Ergebnis

Sind die Parameterwerte korrekt, dann liefert project_3d_pointproject_3d_pointProject3dPointProject3dPointProject3dPoint den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

read_cam_parread_cam_parReadCamParReadCamParReadCamPar, affine_trans_point_3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3dAffineTransPoint3d

Nachfolger

gen_region_pointsgen_region_pointsGenRegionPointsGenRegionPointsGenRegionPoints, gen_region_polygongen_region_polygonGenRegionPolygonGenRegionPolygonGenRegionPolygon, disp_polygondisp_polygonDispPolygonDispPolygonDispPolygon

Siehe auch

camera_calibrationcamera_calibrationCameraCalibrationCameraCalibrationCameraCalibration, disp_caltabdisp_caltabDispCaltabDispCaltabDispCaltab, read_cam_parread_cam_parReadCamParReadCamParReadCamPar, get_line_of_sightget_line_of_sightGetLineOfSightGetLineOfSightGetLineOfSight, affine_trans_point_3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3dAffineTransPoint3d, image_points_to_world_planeimage_points_to_world_planeImagePointsToWorldPlaneImagePointsToWorldPlaneImagePointsToWorldPlane

Modul

Calibration