projective_trans_hom_point_3d T_projective_trans_hom_point_3d ProjectiveTransHomPoint3d ProjectiveTransHomPoint3d projective_trans_hom_point_3d (算子名称)
名称
projective_trans_hom_point_3d T_projective_trans_hom_point_3d ProjectiveTransHomPoint3d ProjectiveTransHomPoint3d projective_trans_hom_point_3d
— Project a homogeneous 3D point using a projective transformation
matrix.
参数签名
Herror T_projective_trans_hom_point_3d (const Htuple HomMat3D , const Htuple Px , const Htuple Py , const Htuple Pz , const Htuple Pw , Htuple* Qx , Htuple* Qy , Htuple* Qz , Htuple* Qw )
void ProjectiveTransHomPoint3d (const HTuple& HomMat3D , const HTuple& Px , const HTuple& Py , const HTuple& Pz , const HTuple& Pw , HTuple* Qx , HTuple* Qy , HTuple* Qz , HTuple* Qw )
HTuple HHomMat3D ::ProjectiveTransHomPoint3d (const HTuple& Px , const HTuple& Py , const HTuple& Pz , const HTuple& Pw , HTuple* Qy , HTuple* Qz , HTuple* Qw ) const
double HHomMat3D ::ProjectiveTransHomPoint3d (double Px , double Py , double Pz , double Pw , double* Qy , double* Qz , double* Qw ) const
static void HOperatorSet .ProjectiveTransHomPoint3d (HTuple homMat3D , HTuple px , HTuple py , HTuple pz , HTuple pw , out HTuple qx , out HTuple qy , out HTuple qz , out HTuple qw )
HTuple HHomMat3D .ProjectiveTransHomPoint3d (HTuple px , HTuple py , HTuple pz , HTuple pw , out HTuple qy , out HTuple qz , out HTuple qw )
double HHomMat3D .ProjectiveTransHomPoint3d (double px , double py , double pz , double pw , out double qy , out double qz , out double qw )
def projective_trans_hom_point_3d (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], Sequence[float]]
def projective_trans_hom_point_3d_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, float]
描述
projective_trans_hom_point_3d projective_trans_hom_point_3d ProjectiveTransHomPoint3d ProjectiveTransHomPoint3d ProjectiveTransHomPoint3d projective_trans_hom_point_3d
applies the homogeneous
projective transformation 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
,Qz Qz Qz Qz qz qz
,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
projective_trans_point_3d projective_trans_point_3d ProjectiveTransPoint3d ProjectiveTransPoint3d ProjectiveTransPoint3d projective_trans_point_3d
. Thus,
projective_trans_hom_point_3d projective_trans_hom_point_3d ProjectiveTransHomPoint3d ProjectiveTransHomPoint3d ProjectiveTransHomPoint3d projective_trans_hom_point_3d
is primarily useful for
transforming points or point sets for which the resulting points
might lie in the plane at infinity, i.e., points that potentially
have Qw Qw Qw Qw qw qw
= 0, for which the above division cannot be
performed.
运行信息
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.
参数表
HomMat3D HomMat3D HomMat3D HomMat3D homMat3D hom_mat_3d
(input_control) hom_mat3d →
HHomMat3D , HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Homogeneous projective transformation 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) number(-array) →
HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Output point (x coordinate).
Qy Qy Qy Qy qy qy
(output_control) number(-array) →
HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Output point (y coordinate).
Qz Qz Qz Qz qz qz
(output_control) number(-array) →
HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Output point (z coordinate).
Qw Qw Qw Qw qw qw
(output_control) number(-array) →
HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Output point (w coordinate).
可能的前置算子
vector_to_hom_mat3d vector_to_hom_mat3d VectorToHomMat3d VectorToHomMat3d VectorToHomMat3d vector_to_hom_mat3d
可替代算子
projective_trans_point_3d projective_trans_point_3d ProjectiveTransPoint3d ProjectiveTransPoint3d ProjectiveTransPoint3d projective_trans_point_3d
模块
Foundation