Operator Reference

vector_to_hom_mat3dT_vector_to_hom_mat3dVectorToHomMat3dVectorToHomMat3dvector_to_hom_mat3d (Operator)

vector_to_hom_mat3dT_vector_to_hom_mat3dVectorToHomMat3dVectorToHomMat3dvector_to_hom_mat3d — Approximate a 3D transformation from point correspondences.

Signature

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]

Description

vector_to_hom_mat3dvector_to_hom_mat3dVectorToHomMat3dVectorToHomMat3dvector_to_hom_mat3d approximates an affine or projective 3D transformation from point correspondences and returns it as the homogeneous transformation matrix HomMat3DHomMat3DHomMat3DhomMat3Dhom_mat_3d.

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

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

The point correspondences are passed in the tuples (PxPxPxpxpx,PyPyPypypy,PzPzPzpzpz) and (QxQxQxqxqx,QyQyQyqyqy,QzQzQzqzqz), 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 (PxPxPxpxpx,PyPyPypypy,PzPzPzpzpz) and the points (QxQxQxqxqx,QyQyQyqyqy,QzQzQzqzqz), as described in the following equation (points as homogeneous vectors):

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

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

TransformationTypeTransformationTypeTransformationTypetransformationTypetransformation_type (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Type of the transformation to compute.

Default: 'rigid' "rigid" "rigid" "rigid" "rigid"

List of values: 'affine'"affine""affine""affine""affine", 'projective'"projective""projective""projective""projective", 'rigid'"rigid""rigid""rigid""rigid", 'similarity'"similarity""similarity""similarity""similarity"

PxPxPxpxpx (input_control)  point3d.x-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

X coordinates of the original points.

PyPyPypypy (input_control)  point3d.y-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Y coordinates of the original points.

PzPzPzpzpz (input_control)  point3d.z-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Z coordinates of the original points.

QxQxQxqxqx (input_control)  point3d.x-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

X coordinates of the transformed points.

QyQyQyqyqy (input_control)  point3d.x-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Y coordinates of the transformed points.

QzQzQzqzqz (input_control)  point3d.z-array HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Z coordinates of the transformed points.

HomMat3DHomMat3DHomMat3DhomMat3Dhom_mat_3d (output_control)  hom_mat3d HHomMat3D, HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Output transformation matrix.

Possible Successors

hom_mat3d_to_posehom_mat3d_to_poseHomMat3dToPoseHomMat3dToPosehom_mat3d_to_pose, affine_trans_point_3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3daffine_trans_point_3d

See also

point_pluecker_line_to_hom_mat3dpoint_pluecker_line_to_hom_mat3dPointPlueckerLineToHomMat3dPointPlueckerLineToHomMat3dpoint_pluecker_line_to_hom_mat3d

Module

Foundation