KlassenKlassenKlassenKlassen | | | | Operatoren

project_3d_pointT_project_3d_pointProject3dPointproject_3d_pointProject3dPointProject3dPoint (Operator)

Name

project_3d_pointT_project_3d_pointProject3dPointproject_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)

Herror 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)

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

void HOperatorSetX.Project3dPoint(
[in] VARIANT X, [in] VARIANT Y, [in] VARIANT Z, [in] VARIANT CameraParam, [out] VARIANT* Row, [out] VARIANT* Column)

VARIANT HMiscX.Project3dPoint(
[in] VARIANT X, [in] VARIANT Y, [in] VARIANT Z, [in] VARIANT CameraParam, [out] VARIANT* Column)

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

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

Beschreibung

project_3d_pointproject_3d_pointProject3dPointproject_3d_pointProject3dPointProject3dPoint 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 CameraParamCameraParamCameraParamCameraParamCameraParamcameraParam beschreiben dabei die Abbildungseigenschaften der Kamera (siehe calibrate_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras).

Parallelisierung

Parameter

XXXXXx (input_control)  point3d.x-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

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

YYYYYy (input_control)  point3d.y-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

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

ZZZZZz (input_control)  point3d.z-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

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

CameraParamCameraParamCameraParamCameraParamCameraParamcameraParam (input_control)  number-array HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Interne Kameraparameter.

Parameteranzahl: CameraParam == 8 || CameraParam == 10 || CameraParam == 11 || CameraParam == 12 || CameraParam == 14

RowRowRowRowRowrow (output_control)  point.y-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Zeilenkoordinaten der projizierten Punkte (in Pixel).

ColumnColumnColumnColumnColumncolumn (output_control)  point.x-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Spaltenkoordinaten der projizierten Punkte (in Pixel).

Beispiel (HDevelop)

*  read pose of the world coordinate system in camera coordinates
read_pose('worldpose.dat', 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], [5.8, 6.2], X, Y, Z)
*  read internal camera parameters
read_cam_par('campar.dat', CameraParam)
* project 3D points into image
project_3d_point(X, Y, Z, CameraParam, Row, Column)

Beispiel (HDevelop)

*  read pose of the world coordinate system in camera coordinates
read_pose('worldpose.dat', 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], [5.8, 6.2], X, Y, Z)
*  read internal camera parameters
read_cam_par('campar.dat', CameraParam)
* project 3D points into image
project_3d_point(X, Y, Z, CameraParam, Row, Column)

Beispiel (HDevelop)

*  read pose of the world coordinate system in camera coordinates
read_pose('worldpose.dat', 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], [5.8, 6.2], X, Y, Z)
*  read internal camera parameters
read_cam_par('campar.dat', CameraParam)
* project 3D points into image
project_3d_point(X, Y, Z, CameraParam, Row, Column)

Beispiel (C++ (HALCON 5.0-10.0))

HTuple WorldPose, HomMat3D, X1, Y1, Z1, X2, Y2, Z2;
HTuple CameraParam, Row, Column;
//  read pose of the world coordinate system in camera coordinates
read_pose("worldpose.dat", &WorldPose);
//  convert pose into transformation matrix
pose_to_hom_mat3d(WorldPose, &HomMat3D);
//  transform 3D points from source into destination coordinate system
X1[1] = 3.2;
X1[0] = 3.0;
Y1[1] = 4.5;
Y1[0] = 4.5;
Z1[1] = 6.2;
Z1[0] = 5.8;
affine_trans_point_3d(HomMat3D, X1, Y1, Z1, &X2, &Y2, &Z2);
// read internal camera parameters
read_cam_par("campar.dat", &CameraParam);
// project 3D points into image
project_3d_point(X2, Y2, Z2, CameraParam, &Row, &Column);

Beispiel (HDevelop)

*  read pose of the world coordinate system in camera coordinates
read_pose('worldpose.dat', 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], [5.8, 6.2], X, Y, Z)
*  read internal camera parameters
read_cam_par('campar.dat', CameraParam)
* project 3D points into image
project_3d_point(X, Y, Z, CameraParam, Row, Column)

Beispiel (HDevelop)

*  read pose of the world coordinate system in camera coordinates
read_pose('worldpose.dat', 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], [5.8, 6.2], X, Y, Z)
*  read internal camera parameters
read_cam_par('campar.dat', CameraParam)
* 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_pointProject3dPointproject_3d_pointProject3dPointProject3dPoint den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

read_cam_parread_cam_parReadCamParread_cam_parReadCamParReadCamPar, affine_trans_point_3daffine_trans_point_3dAffineTransPoint3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3d

Nachfolger

gen_region_pointsgen_region_pointsGenRegionPointsgen_region_pointsGenRegionPointsGenRegionPoints, gen_region_polygongen_region_polygonGenRegionPolygongen_region_polygonGenRegionPolygonGenRegionPolygon, disp_polygondisp_polygonDispPolygondisp_polygonDispPolygonDispPolygon

Siehe auch

camera_calibrationcamera_calibrationCameraCalibrationcamera_calibrationCameraCalibrationCameraCalibration, disp_caltabdisp_caltabDispCaltabdisp_caltabDispCaltabDispCaltab, read_cam_parread_cam_parReadCamParread_cam_parReadCamParReadCamPar, get_line_of_sightget_line_of_sightGetLineOfSightget_line_of_sightGetLineOfSightGetLineOfSight, affine_trans_point_3daffine_trans_point_3dAffineTransPoint3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3d

Modul

Calibration


KlassenKlassenKlassenKlassen | | | | Operatoren