project_point_hom_mat3dT_project_point_hom_mat3dProjectPointHomMat3dProjectPointHomMat3d (Operator)
Name
project_point_hom_mat3dT_project_point_hom_mat3dProjectPointHomMat3dProjectPointHomMat3d
— Project a 3D point using a 3×4 projection matrix.
Signature
Herror T_project_point_hom_mat3d(const Htuple HomMat3D, const Htuple Px, const Htuple Py, const Htuple Pz, Htuple* Qx, Htuple* Qy)
void ProjectPointHomMat3d(const HTuple& HomMat3D, const HTuple& Px, const HTuple& Py, const HTuple& Pz, HTuple* Qx, HTuple* Qy)
HTuple HHomMat3D::ProjectPointHomMat3d(const HTuple& Px, const HTuple& Py, const HTuple& Pz, HTuple* Qy) const
double HHomMat3D::ProjectPointHomMat3d(double Px, double Py, double Pz, double* Qy) const
static void HOperatorSet.ProjectPointHomMat3d(HTuple homMat3D, HTuple px, HTuple py, HTuple pz, out HTuple qx, out HTuple qy)
HTuple HHomMat3D.ProjectPointHomMat3d(HTuple px, HTuple py, HTuple pz, out HTuple qy)
double HHomMat3D.ProjectPointHomMat3d(double px, double py, double pz, out double qy)
Description
project_point_hom_mat3dproject_point_hom_mat3dProjectPointHomMat3dProjectPointHomMat3dProjectPointHomMat3d
applies the 3×4 projection matrix
HomMat3DHomMat3DHomMat3DHomMat3DhomMat3D
to all input points
(PxPxPxPxpx
,PyPyPyPypy
,PzPzPzPzpz
) and returns an array of output
points (QxQxQxQxqx
,QyQyQyQyqy
). The transformation is described by
the 3×4 projection matrix given in HomMat3DHomMat3DHomMat3DHomMat3DhomMat3D
. This
corresponds to the following equations (input and output points as
homogeneous vectors):
project_point_hom_mat3dproject_point_hom_mat3dProjectPointHomMat3dProjectPointHomMat3dProjectPointHomMat3d
then transforms the homogeneous
coordinates to Euclidean coordinates by dividing them by Tw:
If a point on the line at infinity (Tw = 0) is created by the
transformation, an error is returned. If this is undesired,
project_hom_point_hom_mat3dproject_hom_point_hom_mat3dProjectHomPointHomMat3dProjectHomPointHomMat3dProjectHomPointHomMat3d
can be used.
Note that, consistent with the conventions used by the projection in
calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCameras
, QxQxQxQxqx
corresponds to the column
coordinate of an image and QyQyQyQyqy
corresponds to the row
coordinate.
Execution Information
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Processed without parallelization.
Parameters
HomMat3DHomMat3DHomMat3DHomMat3DhomMat3D
(input_control) hom_mat3d →
HHomMat3D, HTupleHTupleHtuple (real) (double) (double) (double)
3×4 projection matrix.
PxPxPxPxpx
(input_control) number(-array) →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Input point (x coordinate).
PyPyPyPypy
(input_control) number(-array) →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Input point (y coordinate).
PzPzPzPzpz
(input_control) number(-array) →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Input point (z coordinate).
QxQxQxQxqx
(output_control) real(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Output point (x coordinate).
QyQyQyQyqy
(output_control) real(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Output point (y coordinate).
Possible Predecessors
cam_par_pose_to_hom_mat3dcam_par_pose_to_hom_mat3dCamParPoseToHomMat3dCamParPoseToHomMat3dCamParPoseToHomMat3d
Alternatives
project_hom_point_hom_mat3dproject_hom_point_hom_mat3dProjectHomPointHomMat3dProjectHomPointHomMat3dProjectHomPointHomMat3d
,
project_3d_pointproject_3d_pointProject3dPointProject3dPointProject3dPoint
Module
Foundation