KlassenKlassenKlassenKlassen | | | | Operatoren

vector_to_hom_mat3dT_vector_to_hom_mat3dVectorToHomMat3dvector_to_hom_mat3dVectorToHomMat3dVectorToHomMat3d (Operator)

Name

vector_to_hom_mat3dT_vector_to_hom_mat3dVectorToHomMat3dvector_to_hom_mat3dVectorToHomMat3dVectorToHomMat3d — Erzeugt eine Näherung für eine 3D-Transformation aus Punktkorrespondenzen.

Signatur

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)

Herror 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 HOperatorSetX.VectorToHomMat3d(
[in] VARIANT TransformationType, [in] VARIANT Px, [in] VARIANT Py, [in] VARIANT Pz, [in] VARIANT Qx, [in] VARIANT Qy, [in] VARIANT Qz, [out] VARIANT* HomMat3d)

void HHomMat3DX.VectorToHomMat3d(
[in] BSTR TransformationType, [in] VARIANT Px, [in] VARIANT Py, [in] VARIANT Pz, [in] VARIANT Qx, [in] VARIANT Qy, [in] VARIANT Qz)

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)

Beschreibung

vector_to_hom_mat3dvector_to_hom_mat3dVectorToHomMat3dvector_to_hom_mat3dVectorToHomMat3dVectorToHomMat3d erzeugt aus Punktkorrespondenzen eine Näherung für eine affine oder projektive 3D-Transformation und liefert sie in der homogenen Transformationsmatrix HomMat3DHomMat3DHomMat3DHomMat3DHomMat3DhomMat3D zurück.

Der Typ der zu berechnenden 3D-Transformation wird mit TransformationTypeTransformationTypeTransformationTypeTransformationTypeTransformationTypetransformationType festgelegt. Für TransformationTypeTransformationTypeTransformationTypeTransformationTypeTransformationTypetransformationType = 'rigid'"rigid""rigid""rigid""rigid""rigid" wird eine starre 3D-Transformation (eine Rotation und eine Translation), für TransformationTypeTransformationTypeTransformationTypeTransformationTypeTransformationTypetransformationType = 'similarity'"similarity""similarity""similarity""similarity""similarity" eine Ähnlichkeitsabbildung (eine gleichförmige Skalierung, eine Rotation und eine Translation), für TransformationTypeTransformationTypeTransformationTypeTransformationTypeTransformationTypetransformationType = 'affine'"affine""affine""affine""affine""affine" eine allgemeine affine 3D-Transformation und für TransformationTypeTransformationTypeTransformationTypeTransformationTypeTransformationTypetransformationType = 'projective'"projective""projective""projective""projective""projective" eine projektive 3D-Transformation berechnet.

Die minimal benötigte Anzahl an Punktkorrespondenzen ist 3 für TransformationTypeTransformationTypeTransformationTypeTransformationTypeTransformationTypetransformationType = 'rigid'"rigid""rigid""rigid""rigid""rigid", 3 für TransformationTypeTransformationTypeTransformationTypeTransformationTypeTransformationTypetransformationType = 'similarity'"similarity""similarity""similarity""similarity""similarity", 4 für TransformationTypeTransformationTypeTransformationTypeTransformationTypeTransformationTypetransformationType = 'affine'"affine""affine""affine""affine""affine" und 5 für TransformationTypeTransformationTypeTransformationTypeTransformationTypeTransformationTypetransformationType = 'projective'"projective""projective""projective""projective""projective".

Die Punktkorrespondenzen werden in den Tupeln (PxPxPxPxPxpx,PyPyPyPyPypy,PzPzPzPzPzpz) und (QxQxQxQxQxqx,QyQyQyQyQyqy,QzQzQzQzQzqz) übergeben, wobei korrespondierende Punkte an denselben Indexpositionen stehen müssen. Die Transformation ist überbestimmt, falls mehr als die minimale Anzahl an Punktkorrespondenzen übergeben wird. In diesem Fall ist die zurückgelieferte Transformation diejenige, die die Abstände zwischen den transformierten Eingabepunkten (PxPxPxPxPxpx,PyPyPyPyPypy,PzPzPzPzPzpz) und den Zielpunkten (QxQxQxQxQxqx,QyQyQyQyQyqy,QzQzQzQzQzqz) minimiert, wie in der folgenden Gleichung beschrieben (Punkte als homogene Vektoren dargestellt):

HomMat3DHomMat3DHomMat3DHomMat3DHomMat3DhomMat3D kann direkt mit den Operatoren, die Daten mit affinen 3D-Transformationen transformieren, z.B. affine_trans_point_3daffine_trans_point_3dAffineTransPoint3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3d, verwendet werden.

Parallelisierung

Parameter

TransformationTypeTransformationTypeTransformationTypeTransformationTypeTransformationTypetransformationType (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Typ der zu berechnenden Transformation.

Defaultwert: 'rigid' "rigid" "rigid" "rigid" "rigid" "rigid"

Werteliste: '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 (input_control)  point3d.x-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

X-Koordinaten der originalen Punkte.

PyPyPyPyPypy (input_control)  point3d.y-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Y-Koordinaten der originalen Punkte.

PzPzPzPzPzpz (input_control)  point3d.z-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Z-Koordinaten der originalen Punkte.

QxQxQxQxQxqx (input_control)  point3d.x-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

X-Koordinaten der transformierten Punkte.

QyQyQyQyQyqy (input_control)  point3d.x-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Y-Koordinaten der transformierten Punkte.

QzQzQzQzQzqz (input_control)  point3d.z-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Z-Koordinaten der transformierten Punkte.

HomMat3DHomMat3DHomMat3DHomMat3DHomMat3DhomMat3D (output_control)  hom_mat3d HHomMat3D, HTupleHTupleHTupleHHomMat3DX, VARIANTHtuple (real) (double) (double) (double) (double) (double)

Ausgabe-Transformationsmatrix.

Nachfolger

hom_mat3d_to_posehom_mat3d_to_poseHomMat3dToPosehom_mat3d_to_poseHomMat3dToPoseHomMat3dToPose, affine_trans_point_3daffine_trans_point_3dAffineTransPoint3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3d

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren