project_3d_pointT_project_3d_pointProject3dPointProject3dPoint (Operator)

Name

project_3d_pointT_project_3d_pointProject3dPointProject3dPoint — Project 3D points into (sub-)pixel image coordinates.

Signature

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)

Description

project_3d_pointproject_3d_pointProject3dPointProject3dPointProject3dPoint projects one or more 3D points (with coordinates XXXXx, YYYYy, and ZZZZz) into the image plane (in pixels) and returns the result in RowRowRowRowrow and ColumnColumnColumnColumncolumn. The coordinates XXXXx, YYYYy, and ZZZZz are given in the camera coordinate system, i.e., they describe the position of the points relative to the camera.

The internal camera parameters CameraParamCameraParamCameraParamCameraParamcameraParam describe the projection characteristics of the camera (see Calibration / Multi-View for details).

Execution Information

Parameters

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

X coordinates of the 3D points to be projected in the camera coordinate system.

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

Y coordinates of the 3D points to be projected in the camera coordinate system.

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

Z coordinates of the 3D points to be projected in the camera coordinate system.

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

Internal camera parameters.

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

Row coordinates of the projected points (in pixels).

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

Column coordinates of the projected points (in pixels).

Example (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)

Example (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)

Example (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)

Example (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)

Example (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)

Result

project_3d_pointproject_3d_pointProject3dPointProject3dPointProject3dPoint returns 2 (H_MSG_TRUE) if all parameter values are correct. If necessary, an exception is raised.

Possible Predecessors

read_cam_parread_cam_parReadCamParReadCamParReadCamPar, affine_trans_point_3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3dAffineTransPoint3d

Possible Successors

gen_region_pointsgen_region_pointsGenRegionPointsGenRegionPointsGenRegionPoints, gen_region_polygongen_region_polygonGenRegionPolygonGenRegionPolygonGenRegionPolygon, disp_polygondisp_polygonDispPolygonDispPolygonDispPolygon

See also

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

Module

Calibration