vector_to_hom_mat3d T_vector_to_hom_mat3d VectorToHomMat3d VectorToHomMat3d vector_to_hom_mat3d (Operator)
Name
vector_to_hom_mat3d T_vector_to_hom_mat3d VectorToHomMat3d VectorToHomMat3d vector_to_hom_mat3d — Erzeugt eine Näherung für eine 3D-Transformation aus
Punktkorrespondenzen.
Signatur
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 )
(Nur Windows)
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]
Beschreibung
vector_to_hom_mat3d vector_to_hom_mat3d VectorToHomMat3d VectorToHomMat3d VectorToHomMat3d vector_to_hom_mat3d erzeugt aus Punktkorrespondenzen eine
Näherung für eine affine oder projektive 3D-Transformation und
liefert sie in der homogenen Transformationsmatrix HomMat3D HomMat3D HomMat3D HomMat3D homMat3D hom_mat_3d
zurück.
Der Typ der zu berechnenden 3D-Transformation wird mit
TransformationType TransformationType TransformationType TransformationType transformationType transformation_type festgelegt. Für
TransformationType TransformationType TransformationType TransformationType transformationType transformation_type = 'rigid' "rigid" "rigid" "rigid" "rigid" "rigid" wird eine starre
3D-Transformation (eine Rotation und eine Translation), für
TransformationType TransformationType TransformationType TransformationType transformationType transformation_type = 'similarity' "similarity" "similarity" "similarity" "similarity" "similarity" eine
Ähnlichkeitsabbildung (eine gleichförmige Skalierung, eine Rotation
und eine Translation), für TransformationType TransformationType TransformationType TransformationType transformationType transformation_type =
'affine' "affine" "affine" "affine" "affine" "affine" eine allgemeine affine 3D-Transformation und für
TransformationType TransformationType TransformationType TransformationType transformationType transformation_type = 'projective' "projective" "projective" "projective" "projective" "projective" eine
projektive 3D-Transformation berechnet.
Die minimal benötigte Anzahl an Punktkorrespondenzen ist 3 für
TransformationType TransformationType TransformationType TransformationType transformationType transformation_type = 'rigid' "rigid" "rigid" "rigid" "rigid" "rigid" , 3 für
TransformationType TransformationType TransformationType TransformationType transformationType transformation_type = 'similarity' "similarity" "similarity" "similarity" "similarity" "similarity" , 4 für
TransformationType TransformationType TransformationType TransformationType transformationType transformation_type = 'affine' "affine" "affine" "affine" "affine" "affine" und 5 für
TransformationType TransformationType TransformationType TransformationType transformationType transformation_type = 'projective' "projective" "projective" "projective" "projective" "projective" .
Die Punktkorrespondenzen werden in den Tupeln
(Px Px Px Px px px ,Py Py Py Py py py ,Pz Pz Pz Pz pz pz ) und
(Qx Qx Qx Qx qx qx ,Qy Qy Qy Qy qy qy ,Qz Qz Qz Qz qz qz ) ü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
(Px Px Px Px px px ,Py Py Py Py py py ,Pz Pz Pz Pz pz pz ) und den Zielpunkten
(Qx Qx Qx Qx qx qx ,Qy Qy Qy Qy qy qy ,Qz Qz Qz Qz qz qz ) minimiert, wie in der
folgenden Gleichung beschrieben (Punkte als homogene Vektoren
dargestellt):
HomMat3D HomMat3D HomMat3D HomMat3D homMat3D hom_mat_3d kann direkt mit den Operatoren, die Daten mit
affinen 3D-Transformationen transformieren, z.B.
affine_trans_point_3d affine_trans_point_3d AffineTransPoint3d AffineTransPoint3d AffineTransPoint3d affine_trans_point_3d , verwendet werden.
Ausführungsinformationen
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
Wird ohne Parallelisierung verarbeitet.
Parameter
TransformationType TransformationType TransformationType TransformationType transformationType transformation_type (input_control) string → HTuple str HTuple Htuple (string) (string ) (HString ) (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"
Px Px Px Px px px (input_control) point3d.x-array → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
X-Koordinaten der originalen Punkte.
Py Py Py Py py py (input_control) point3d.y-array → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Y-Koordinaten der originalen Punkte.
Pz Pz Pz Pz pz pz (input_control) point3d.z-array → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Z-Koordinaten der originalen Punkte.
Qx Qx Qx Qx qx qx (input_control) point3d.x-array → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
X-Koordinaten der transformierten Punkte.
Qy Qy Qy Qy qy qy (input_control) point3d.x-array → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Y-Koordinaten der transformierten Punkte.
Qz Qz Qz Qz qz qz (input_control) point3d.z-array → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Z-Koordinaten der transformierten Punkte.
HomMat3D HomMat3D HomMat3D HomMat3D homMat3D hom_mat_3d (output_control) hom_mat3d → HHomMat3D , HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Ausgabe-Transformationsmatrix.
Nachfolger
hom_mat3d_to_pose hom_mat3d_to_pose HomMat3dToPose HomMat3dToPose HomMat3dToPose hom_mat3d_to_pose ,
affine_trans_point_3d affine_trans_point_3d AffineTransPoint3d AffineTransPoint3d AffineTransPoint3d affine_trans_point_3d
Siehe auch
point_pluecker_line_to_hom_mat3d point_pluecker_line_to_hom_mat3d PointPlueckerLineToHomMat3d PointPlueckerLineToHomMat3d PointPlueckerLineToHomMat3d point_pluecker_line_to_hom_mat3d
Modul
Foundation