vector_to_hom_mat3dT_vector_to_hom_mat3dVectorToHomMat3dVectorToHomMat3dvector_to_hom_mat3d (算子)

名称

vector_to_hom_mat3dT_vector_to_hom_mat3dVectorToHomMat3dVectorToHomMat3dvector_to_hom_mat3d — 根据点对应关系近似三维变换。

签名

vector_to_hom_mat3d( : : TransformationType, Px, Py, Pz, Qx, Qy, Qz : HomMat3D)

Herror T_vector_to_hom_mat3d(const Htuple TransformationType, const Htuple Px, const Htuple Py, const Htuple Pz, const Htuple Qx, const Htuple Qy, const Htuple Qz, Htuple* HomMat3D)

void VectorToHomMat3d(const HTuple& TransformationType, const HTuple& Px, const HTuple& Py, const HTuple& Pz, const HTuple& Qx, const HTuple& Qy, const HTuple& Qz, HTuple* HomMat3D)

void HHomMat3D::VectorToHomMat3d(const HString& TransformationType, const HTuple& Px, const HTuple& Py, const HTuple& Pz, const HTuple& Qx, const HTuple& Qy, const HTuple& Qz)

void HHomMat3D::VectorToHomMat3d(const char* TransformationType, const HTuple& Px, const HTuple& Py, const HTuple& Pz, const HTuple& Qx, const HTuple& Qy, const HTuple& Qz)

void HHomMat3D::VectorToHomMat3d(const wchar_t* TransformationType, const HTuple& Px, const HTuple& Py, const HTuple& Pz, const HTuple& Qx, const HTuple& Qy, const HTuple& Qz)   ( Windows only)

static void HOperatorSet.VectorToHomMat3d(HTuple transformationType, HTuple px, HTuple py, HTuple pz, HTuple qx, HTuple qy, HTuple qz, out HTuple homMat3D)

void HHomMat3D.VectorToHomMat3d(string transformationType, HTuple px, HTuple py, HTuple pz, HTuple qx, HTuple qy, HTuple qz)

def vector_to_hom_mat3d(transformation_type: str, px: Sequence[float], py: Sequence[float], pz: Sequence[float], qx: Sequence[float], qy: Sequence[float], qz: Sequence[float]) -> Sequence[float]

描述

vector_to_hom_mat3dvector_to_hom_mat3dVectorToHomMat3dVectorToHomMat3dVectorToHomMat3dvector_to_hom_mat3d approximates an affine or projective 3D transformation from point correspondences and returns it as the homogeneous transformation matrix HomMat3DHomMat3DHomMat3DHomMat3DhomMat3Dhom_mat_3d

The type of the 3D transformation to compute is specified with TransformationTypeTransformationTypeTransformationTypeTransformationTypetransformationTypetransformation_type. For TransformationTypeTransformationTypeTransformationTypeTransformationTypetransformationTypetransformation_type = 'rigid'"rigid""rigid""rigid""rigid""rigid", a rigid 3D transformation (a rotation and a translation), for TransformationTypeTransformationTypeTransformationTypeTransformationTypetransformationTypetransformation_type = 'similarity'"similarity""similarity""similarity""similarity""similarity", a 3D similarity transformation (a uniform scaling, a rotation, and a translation), for TransformationTypeTransformationTypeTransformationTypeTransformationTypetransformationTypetransformation_type = 'affine'"affine""affine""affine""affine""affine" a general affine 3D transformation, and for TransformationTypeTransformationTypeTransformationTypeTransformationTypetransformationTypetransformation_type = 'projective'"projective""projective""projective""projective""projective" a projective 3D transformation is computed.

The minimum required number of point correspondences is 3 for TransformationTypeTransformationTypeTransformationTypeTransformationTypetransformationTypetransformation_type = 'rigid'"rigid""rigid""rigid""rigid""rigid", 3 for TransformationTypeTransformationTypeTransformationTypeTransformationTypetransformationTypetransformation_type = 'similarity'"similarity""similarity""similarity""similarity""similarity", 4 for TransformationTypeTransformationTypeTransformationTypeTransformationTypetransformationTypetransformation_type = 'affine'"affine""affine""affine""affine""affine", and 5 for TransformationTypeTransformationTypeTransformationTypeTransformationTypetransformationTypetransformation_type = 'projective'"projective""projective""projective""projective""projective".

The point correspondences are passed in the tuples (PxPxPxPxpxpx,PyPyPyPypypy,PzPzPzPzpzpz) and (QxQxQxQxqxqx,QyQyQyQyqyqy,QzQzQzQzqzqz), where corresponding points must be at the same index positions in the tuples. If more than the minimum number of point correspondences are passed, the transformation is overdetermined. In this case, the returned transformation is the transformation that minimizes the distances between the transformed input points (PxPxPxPxpxpx,PyPyPyPypypy,PzPzPzPzpzpz) and the points (QxQxQxQxqxqx,QyQyQyQyqyqy,QzQzQzQzqzqz), as described in the following equation (points as homogeneous vectors):

HomMat3DHomMat3DHomMat3DHomMat3DhomMat3Dhom_mat_3d can be used directly with operators that transform 3D data using affine transformations, e.g., affine_trans_point_3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3dAffineTransPoint3daffine_trans_point_3d

执行信息

参数

TransformationTypeTransformationTypeTransformationTypeTransformationTypetransformationTypetransformation_type (输入控制)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Type of the transformation to compute.

默认值: 'rigid' "rigid" "rigid" "rigid" "rigid" "rigid"

值列表: 'affine'"affine""affine""affine""affine""affine", 'projective'"projective""projective""projective""projective""projective", 'rigid'"rigid""rigid""rigid""rigid""rigid", 'similarity'"similarity""similarity""similarity""similarity""similarity"

PxPxPxPxpxpx (输入控制)  point3d.x-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

X coordinates of the original points.

PyPyPyPypypy (输入控制)  point3d.y-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Y coordinates of the original points.

PzPzPzPzpzpz (输入控制)  point3d.z-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Z coordinates of the original points.

QxQxQxQxqxqx (输入控制)  point3d.x-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

X coordinates of the transformed points.

QyQyQyQyqyqy (输入控制)  point3d.x-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Y coordinates of the transformed points.

QzQzQzQzqzqz (输入控制)  point3d.z-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Z coordinates of the transformed points.

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

Output transformation matrix.

可能的后继

hom_mat3d_to_posehom_mat3d_to_poseHomMat3dToPoseHomMat3dToPoseHomMat3dToPosehom_mat3d_to_pose, affine_trans_point_3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3dAffineTransPoint3daffine_trans_point_3d

另见

point_pluecker_line_to_hom_mat3dpoint_pluecker_line_to_hom_mat3dPointPlueckerLineToHomMat3dPointPlueckerLineToHomMat3dPointPlueckerLineToHomMat3dpoint_pluecker_line_to_hom_mat3d

模块

基础