project_3d_pointT_project_3d_pointProject3dPointProject3dPoint (Operator)
Name
project_3d_pointT_project_3d_pointProject3dPointProject3dPoint
— 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
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
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
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