project_hom_point_hom_mat3dT_project_hom_point_hom_mat3dProjectHomPointHomMat3dProjectHomPointHomMat3dproject_hom_point_hom_mat3d (算子)

名称

project_hom_point_hom_mat3dT_project_hom_point_hom_mat3dProjectHomPointHomMat3dProjectHomPointHomMat3dproject_hom_point_hom_mat3d — 使用 3×4 投影矩阵投影齐次三维点。

签名

project_hom_point_hom_mat3d( : : HomMat3D, Px, Py, Pz, Pw : Qx, Qy, Qw)

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]

描述

projective_trans_hom_point_3dprojective_trans_hom_point_3dProjectiveTransHomPoint3dProjectiveTransHomPoint3dProjectiveTransHomPoint3dprojective_trans_hom_point_3d applies the 3×4 projection matrix HomMat3DHomMat3DHomMat3DHomMat3DhomMat3Dhom_mat_3d to all homogeneous input points (PxPxPxPxpxpx,PyPyPyPypypy,PzPzPzPzpzpz,PwPwPwPwpwpw) and returns an array of homogeneous output points (QxQxQxQxqxqx,QyQyQyQyqyqy,QwQwQwQwqwqw). The transformation is described by the homogeneous transformation matrix given in HomMat3DHomMat3DHomMat3DHomMat3DhomMat3Dhom_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 QwQwQwQwqwqw: This can be achieved directly by calling project_point_hom_mat3dproject_point_hom_mat3dProjectPointHomMat3dProjectPointHomMat3dProjectPointHomMat3dproject_point_hom_mat3d。Thus, project_hom_point_hom_mat3dproject_hom_point_hom_mat3dProjectHomPointHomMat3dProjectHomPointHomMat3dProjectHomPointHomMat3dproject_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 QwQwQwQwqwqw = 0, for which the above division cannot be performed.

Note that, consistent with the conventions used by the projection in calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCamerascalibrate_cameras, QxQxQxQxqxqx corresponds to the column coordinate of an image and QyQyQyQyqyqy corresponds to the row coordinate.

执行信息

参数

HomMat3DHomMat3DHomMat3DHomMat3DhomMat3Dhom_mat_3d (输入控制)  hom_mat3d HHomMat3D, HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

3×4 projection matrix.

PxPxPxPxpxpx (输入控制)  number(-array) HTupleMaybeSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Input point (x coordinate).

PyPyPyPypypy (输入控制)  number(-array) HTupleMaybeSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Input point (y coordinate).

PzPzPzPzpzpz (输入控制)  number(-array) HTupleMaybeSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Input point (z coordinate).

PwPwPwPwpwpw (输入控制)  number(-array) HTupleMaybeSequence[Union[float, int]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Input point (w coordinate).

QxQxQxQxqxqx (输出控制)  real(-array) HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Output point (x coordinate).

QyQyQyQyqyqy (输出控制)  real(-array) HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Output point (y coordinate).

QwQwQwQwqwqw (输出控制)  real(-array) HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Output point (w coordinate).

可能的前趋

cam_par_pose_to_hom_mat3dcam_par_pose_to_hom_mat3dCamParPoseToHomMat3dCamParPoseToHomMat3dCamParPoseToHomMat3dcam_par_pose_to_hom_mat3d

替代

project_point_hom_mat3dproject_point_hom_mat3dProjectPointHomMat3dProjectPointHomMat3dProjectPointHomMat3dproject_point_hom_mat3d, project_3d_pointproject_3d_pointProject3dPointProject3dPointProject3dPointproject_3d_point

模块

基础