project_hom_point_hom_mat3d T_project_hom_point_hom_mat3d ProjectHomPointHomMat3d ProjectHomPointHomMat3d project_hom_point_hom_mat3d (Operator)
Name
project_hom_point_hom_mat3d T_project_hom_point_hom_mat3d ProjectHomPointHomMat3d ProjectHomPointHomMat3d project_hom_point_hom_mat3d
— Project a homogeneous 3D point using a 3×4 projection matrix.
Signature
Herror T_project_hom_point_hom_mat3d (const Htuple HomMat3D , const Htuple Px , const Htuple Py , const Htuple Pz , const Htuple Pw , Htuple* Qx , Htuple* Qy , Htuple* Qw )
void ProjectHomPointHomMat3d (const HTuple& HomMat3D , const HTuple& Px , const HTuple& Py , const HTuple& Pz , const HTuple& Pw , HTuple* Qx , HTuple* Qy , HTuple* Qw )
HTuple HHomMat3D ::ProjectHomPointHomMat3d (const HTuple& Px , const HTuple& Py , const HTuple& Pz , const HTuple& Pw , HTuple* Qy , HTuple* Qw ) const
double HHomMat3D ::ProjectHomPointHomMat3d (double Px , double Py , double Pz , double Pw , double* Qy , double* Qw ) const
static void HOperatorSet .ProjectHomPointHomMat3d (HTuple homMat3D , HTuple px , HTuple py , HTuple pz , HTuple pw , out HTuple qx , out HTuple qy , out HTuple qw )
HTuple HHomMat3D .ProjectHomPointHomMat3d (HTuple px , HTuple py , HTuple pz , HTuple pw , out HTuple qy , out HTuple qw )
double HHomMat3D .ProjectHomPointHomMat3d (double px , double py , double pz , double pw , out double qy , out double qw )
def project_hom_point_hom_mat3d (hom_mat_3d : Sequence[float], px : MaybeSequence[Union[float, int]], py : MaybeSequence[Union[float, int]], pz : MaybeSequence[Union[float, int]], pw : MaybeSequence[Union[float, int]]) -> Tuple[Sequence[float], Sequence[float], Sequence[float]]
def project_hom_point_hom_mat3d_s (hom_mat_3d : Sequence[float], px : MaybeSequence[Union[float, int]], py : MaybeSequence[Union[float, int]], pz : MaybeSequence[Union[float, int]], pw : MaybeSequence[Union[float, int]]) -> Tuple[float, float, float]
Description
projective_trans_hom_point_3d projective_trans_hom_point_3d ProjectiveTransHomPoint3d ProjectiveTransHomPoint3d ProjectiveTransHomPoint3d projective_trans_hom_point_3d
applies the 3×4 projection
matrix HomMat3D HomMat3D HomMat3D HomMat3D homMat3D hom_mat_3d
to all homogeneous input points
(Px Px Px Px px px
,Py Py Py Py py py
,Pz Pz Pz Pz pz pz
,Pw Pw Pw Pw pw pw
) and returns an
array of homogeneous output points
(Qx Qx Qx Qx qx qx
,Qy Qy Qy Qy qy qy
,Qw Qw Qw Qw qw qw
). The transformation is
described by the homogeneous transformation matrix given in
HomMat3D HomMat3D HomMat3D HomMat3D homMat3D hom_mat_3d
. This corresponds to the following equation (input
and output points as homogeneous vectors):
To transform the homogeneous coordinates to Euclidean coordinates,
they must be divided by Qw Qw Qw Qw qw qw
:
This can be achieved directly by calling
project_point_hom_mat3d project_point_hom_mat3d ProjectPointHomMat3d ProjectPointHomMat3d ProjectPointHomMat3d project_point_hom_mat3d
. Thus,
project_hom_point_hom_mat3d project_hom_point_hom_mat3d ProjectHomPointHomMat3d ProjectHomPointHomMat3d ProjectHomPointHomMat3d project_hom_point_hom_mat3d
is primarily useful for
transforming points or point sets for which the resulting points
might lie on the line at infinity, i.e., points that potentially
have Qw Qw Qw Qw qw qw
= 0, for which the above division cannot be
performed.
Note that, consistent with the conventions used by the projection in
calibrate_cameras calibrate_cameras CalibrateCameras CalibrateCameras CalibrateCameras calibrate_cameras
, Qx Qx Qx Qx qx qx
corresponds to the column
coordinate of an image and Qy Qy Qy Qy qy qy
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).
Automatically parallelized on internal data level.
Parameters
HomMat3D HomMat3D HomMat3D HomMat3D homMat3D hom_mat_3d
(input_control) hom_mat3d →
HHomMat3D , HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
3×4 projection matrix.
Px Px Px Px px px
(input_control) number(-array) →
HTuple MaybeSequence[Union[float, int]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Input point (x coordinate).
Py Py Py Py py py
(input_control) number(-array) →
HTuple MaybeSequence[Union[float, int]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Input point (y coordinate).
Pz Pz Pz Pz pz pz
(input_control) number(-array) →
HTuple MaybeSequence[Union[float, int]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Input point (z coordinate).
Pw Pw Pw Pw pw pw
(input_control) number(-array) →
HTuple MaybeSequence[Union[float, int]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Input point (w coordinate).
Qx Qx Qx Qx qx qx
(output_control) real(-array) →
HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Output point (x coordinate).
Qy Qy Qy Qy qy qy
(output_control) real(-array) →
HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Output point (y coordinate).
Qw Qw Qw Qw qw qw
(output_control) real(-array) →
HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Output point (w coordinate).
Possible Predecessors
cam_par_pose_to_hom_mat3d cam_par_pose_to_hom_mat3d CamParPoseToHomMat3d CamParPoseToHomMat3d CamParPoseToHomMat3d cam_par_pose_to_hom_mat3d
Alternatives
project_point_hom_mat3d project_point_hom_mat3d ProjectPointHomMat3d ProjectPointHomMat3d ProjectPointHomMat3d project_point_hom_mat3d
,
project_3d_point project_3d_point Project3dPoint Project3dPoint Project3dPoint project_3d_point
Module
Foundation