project_3d_pointT_project_3d_pointProject3dPointProject3dPointproject_3d_point (Operator)
Name
project_3d_pointT_project_3d_pointProject3dPointProject3dPointproject_3d_point — Projizieren von 3D-Punkten in Bildkoordinaten (Subpixel).
Signatur
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]]
Beschreibung
project_3d_pointproject_3d_pointProject3dPointProject3dPointProject3dPointproject_3d_point projiziert einen oder mehrere 3D-Punkte mit den
Koordinaten XXXXxx, YYYYyy und ZZZZzz in das
Bildkoordinatensystem (in Pixel) und liefert das Ergebnis in RowRowRowRowrowrow und
ColumnColumnColumnColumncolumncolumn zurück. Die Koordinaten XXXXxx, YYYYyy und ZZZZzz
sind Kamerakoordinaten, entsprechen also der Position der Punkte relativ zur
Kamera.
Die internen Kameraparameter CameraParamCameraParamCameraParamCameraParamcameraParamcamera_param beschreiben dabei die
Abbildungseigenschaften der Kamera (siehe
Kalibrierung).
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf interner Datenebene.
Parameter
XXXXxx (input_control) point3d.x-array → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
X-Koordinaten der zu projizierenden 3D-Punkte im
Kamerakoordinatensystem.
YYYYyy (input_control) point3d.y-array → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Y-Koordinaten der zu projizierenden 3D-Punkte im
Kamerakoordinatensystem.
ZZZZzz (input_control) point3d.z-array → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Z-Koordinaten der zu projizierenden 3D-Punkte im
Kamerakoordinatensystem.
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*)
Interne Kameraparameter.
RowRowRowRowrowrow (output_control) point.y-array → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Zeilenkoordinaten der projizierten Punkte (in Pixel).
ColumnColumnColumnColumncolumncolumn (output_control) point.x-array → HTupleSequence[float]HTupleHtuple (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_pointProject3dPointProject3dPointProject3dPointproject_3d_point
den Wert TRUE. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
read_cam_parread_cam_parReadCamParReadCamParReadCamParread_cam_par,
affine_trans_point_3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3dAffineTransPoint3daffine_trans_point_3d
Nachfolger
gen_region_pointsgen_region_pointsGenRegionPointsGenRegionPointsGenRegionPointsgen_region_points,
gen_region_polygongen_region_polygonGenRegionPolygonGenRegionPolygonGenRegionPolygongen_region_polygon,
disp_polygondisp_polygonDispPolygonDispPolygonDispPolygondisp_polygon
Siehe auch
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
Modul
Calibration