project_3d_pointT_project_3d_pointProject3dPointProject3dPointproject_3d_point (Operator)
Name
project_3d_pointT_project_3d_pointProject3dPointProject3dPointproject_3d_point
— Project 3D points into (sub-)pixel image coordinates.
Signature
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
def project_3d_point(x: Sequence[float], y: Sequence[float], z: Sequence[float], camera_param: Sequence[Union[int, float, str]]) -> Tuple[Sequence[float], Sequence[float]]
Description
project_3d_pointproject_3d_pointProject3dPointProject3dPointProject3dPointproject_3d_point
projects one or more 3D points (with coordinates
XXXXxx
, YYYYyy
, and ZZZZzz
) into the image plane (in pixels) and
returns the result in RowRowRowRowrowrow
and ColumnColumnColumnColumncolumncolumn
. The coordinates
XXXXxx
, YYYYyy
, and ZZZZzz
are given in the camera coordinate
system, i.e., they describe the position of the points relative to the
camera.
The internal camera parameters CameraParamCameraParamCameraParamCameraParamcameraParamcamera_param
describe the projection
characteristics of the camera (see Calibration for
details).
Execution Information
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Automatically parallelized on internal data level.
Parameters
XXXXxx
(input_control) point3d.x-array →
HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
X coordinates of the 3D points to be projected in the
camera coordinate system.
YYYYyy
(input_control) point3d.y-array →
HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Y coordinates of the 3D points to be projected in the
camera coordinate system.
ZZZZzz
(input_control) point3d.z-array →
HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Z coordinates of the 3D points to be projected in the
camera coordinate system.
CameraParamCameraParamCameraParamCameraParamcameraParamcamera_param
(input_control) campar →
HCamPar, HTupleSequence[Union[int, float, str]]HTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)
Internal camera parameters.
RowRowRowRowrowrow
(output_control) point.y-array →
HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Row coordinates of the projected points (in pixels).
ColumnColumnColumnColumncolumncolumn
(output_control) point.x-array →
HTupleSequence[float]HTupleHtuple (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_pointProject3dPointProject3dPointProject3dPointproject_3d_point
returns 2 (H_MSG_TRUE) if all parameter values are
correct. If necessary, an exception is raised.
Possible Predecessors
read_cam_parread_cam_parReadCamParReadCamParReadCamParread_cam_par
,
affine_trans_point_3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3dAffineTransPoint3daffine_trans_point_3d
Possible Successors
gen_region_pointsgen_region_pointsGenRegionPointsGenRegionPointsGenRegionPointsgen_region_points
,
gen_region_polygongen_region_polygonGenRegionPolygonGenRegionPolygonGenRegionPolygongen_region_polygon
,
disp_polygondisp_polygonDispPolygonDispPolygonDispPolygondisp_polygon
See also
camera_calibrationcamera_calibrationCameraCalibrationCameraCalibrationCameraCalibrationcamera_calibration
,
disp_caltabdisp_caltabDispCaltabDispCaltabDispCaltabdisp_caltab
,
read_cam_parread_cam_parReadCamParReadCamParReadCamParread_cam_par
,
get_line_of_sightget_line_of_sightGetLineOfSightGetLineOfSightGetLineOfSightget_line_of_sight
,
affine_trans_point_3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3dAffineTransPoint3daffine_trans_point_3d
,
image_points_to_world_planeimage_points_to_world_planeImagePointsToWorldPlaneImagePointsToWorldPlaneImagePointsToWorldPlaneimage_points_to_world_plane
Module
Calibration