affine_trans_point_2d T_affine_trans_point_2d AffineTransPoint2d AffineTransPoint2d affine_trans_point_2d (Operator)
Name
affine_trans_point_2d T_affine_trans_point_2d AffineTransPoint2d AffineTransPoint2d affine_trans_point_2d — Wendet eine beliebige affine 2D-Transformation auf Punkte an.
Signatur
Herror T_affine_trans_point_2d (const Htuple HomMat2D , const Htuple Px , const Htuple Py , Htuple* Qx , Htuple* Qy )
void AffineTransPoint2d (const HTuple& HomMat2D , const HTuple& Px , const HTuple& Py , HTuple* Qx , HTuple* Qy )
HTuple HHomMat2D ::AffineTransPoint2d (const HTuple& Px , const HTuple& Py , HTuple* Qy ) const
double HHomMat2D ::AffineTransPoint2d (double Px , double Py , double* Qy ) const
def affine_trans_point_2d (hom_mat_2d : Sequence[float], px : MaybeSequence[Union[float, int]], py : MaybeSequence[Union[float, int]]) -> Tuple[Sequence[float], Sequence[float]]
def affine_trans_point_2d_s (hom_mat_2d : Sequence[float], px : MaybeSequence[Union[float, int]], py : MaybeSequence[Union[float, int]]) -> Tuple[float, float]
Beschreibung
affine_trans_point_2d affine_trans_point_2d AffineTransPoint2d AffineTransPoint2d AffineTransPoint2d affine_trans_point_2d wendet eine beliebige affine 2D-Transformation
(Skalierung, Drehung, Verschiebung, Scherung) auf die Eingabepunkte
(Px Px Px Px px px ,Py Py Py Py py py ) an und liefert die Ergebnispunkte in
(Qx Qx Qx Qx qx qx ,Qy Qy Qy Qy qy qy ) zurück. Die Transformation wird durch eine homogene
Transformationsmatrix beschrieben, die in HomMat2D HomMat2D HomMat2D HomMat2D homMat2D hom_mat_2d übergeben wird.
Dies entspricht der folgenden Gleichung (Ein- und Ausgabepunkte als homogene
Vektoren dargestellt):
Falls die zu transformierenden Punkte in Standard-Bildkoordinaten vorliegen,
müssen die Zeilen -Koordinaten der Punkte in Px Px Px Px px px und die
Spalten -Koordinaten in Py Py Py Py py py übergeben werden. Dies ist
notwendig, um für das Bild ein rechtshändiges Koordinatensystem zu erhalten.
Insbesondere werden dadurch Rotationen im korrekten Drehsinn ausgeführt. Die
Koordinatenreihenfolge (x,y) der Matrizen entspricht dann der üblichen
Koordinatenreihenfolge (Zeile,Spalte) der Bilder.
Die Transformationsmatrix kann mit Hilfe der Operatoren
hom_mat2d_identity hom_mat2d_identity HomMat2dIdentity HomMat2dIdentity HomMat2dIdentity hom_mat2d_identity , hom_mat2d_rotate hom_mat2d_rotate HomMat2dRotate HomMat2dRotate HomMat2dRotate hom_mat2d_rotate ,
hom_mat2d_translate hom_mat2d_translate HomMat2dTranslate HomMat2dTranslate HomMat2dTranslate hom_mat2d_translate etc. aufgebaut werden oder das Resultat von
Operatoren wie vector_angle_to_rigid vector_angle_to_rigid VectorAngleToRigid VectorAngleToRigid VectorAngleToRigid vector_angle_to_rigid sein.
Falls zum Beispiel HomMat2D HomMat2D HomMat2D HomMat2D homMat2D hom_mat_2d eine starre Transformation ist,
also aus Rotation und Translation besteht, werden die Punkte
folgendermaßen transformiert:
Ausführungsinformationen
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
Automatisch parallelisiert auf interner Datenebene.
Parameter
HomMat2D HomMat2D HomMat2D HomMat2D homMat2D hom_mat_2d (input_control) hom_mat2d → HHomMat2D , HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Eingabe-Transformationsmatrix.
Px Px Px Px px px (input_control) point.x(-array) → HTuple MaybeSequence[Union[float, int]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkt(e) (x- bzw. Zeilen-Koordinate).
Defaultwert: 64
Wertevorschläge: 0, 16, 32, 64, 128, 256, 512, 1024
Py Py Py Py py py (input_control) point.y(-array) → HTuple MaybeSequence[Union[float, int]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkt(e) (y- bzw. Spalten-Koordinate).
Defaultwert: 64
Wertevorschläge: 0, 16, 32, 64, 128, 256, 512, 1024
Qx Qx Qx Qx qx qx (output_control) point.x(-array) → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Ausgabepunkt(e) (x- bzw. Zeilen-Koordinate).
Qy Qy Qy Qy qy qy (output_control) point.y(-array) → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Ausgabepunkt(e) (y- bzw. Spalten-Koordinate).
Ergebnis
Falls die Matrix HomMat2D HomMat2D HomMat2D HomMat2D homMat2D hom_mat_2d eine affine Abbildung darstellt
(d.h. keine projektive Abbildung), liefert
affine_trans_point_2d affine_trans_point_2d AffineTransPoint2d AffineTransPoint2d AffineTransPoint2d affine_trans_point_2d den Wert TRUE zurück. Ansonsten wird
eine Ausnahmebehandlung durchgeführt.
Vorgänger
hom_mat2d_translate hom_mat2d_translate HomMat2dTranslate HomMat2dTranslate HomMat2dTranslate hom_mat2d_translate ,
hom_mat2d_translate_local hom_mat2d_translate_local HomMat2dTranslateLocal HomMat2dTranslateLocal HomMat2dTranslateLocal hom_mat2d_translate_local ,
hom_mat2d_scale hom_mat2d_scale HomMat2dScale HomMat2dScale HomMat2dScale hom_mat2d_scale ,
hom_mat2d_scale_local hom_mat2d_scale_local HomMat2dScaleLocal HomMat2dScaleLocal HomMat2dScaleLocal hom_mat2d_scale_local ,
hom_mat2d_rotate hom_mat2d_rotate HomMat2dRotate HomMat2dRotate HomMat2dRotate hom_mat2d_rotate ,
hom_mat2d_rotate_local hom_mat2d_rotate_local HomMat2dRotateLocal HomMat2dRotateLocal HomMat2dRotateLocal hom_mat2d_rotate_local ,
hom_mat2d_slant hom_mat2d_slant HomMat2dSlant HomMat2dSlant HomMat2dSlant hom_mat2d_slant ,
hom_mat2d_slant_local hom_mat2d_slant_local HomMat2dSlantLocal HomMat2dSlantLocal HomMat2dSlantLocal hom_mat2d_slant_local ,
hom_mat2d_reflect hom_mat2d_reflect HomMat2dReflect HomMat2dReflect HomMat2dReflect hom_mat2d_reflect ,
hom_mat2d_reflect_local hom_mat2d_reflect_local HomMat2dReflectLocal HomMat2dReflectLocal HomMat2dReflectLocal hom_mat2d_reflect_local
Nachfolger
hom_mat2d_translate hom_mat2d_translate HomMat2dTranslate HomMat2dTranslate HomMat2dTranslate hom_mat2d_translate ,
hom_mat2d_translate_local hom_mat2d_translate_local HomMat2dTranslateLocal HomMat2dTranslateLocal HomMat2dTranslateLocal hom_mat2d_translate_local ,
hom_mat2d_scale hom_mat2d_scale HomMat2dScale HomMat2dScale HomMat2dScale hom_mat2d_scale ,
hom_mat2d_scale_local hom_mat2d_scale_local HomMat2dScaleLocal HomMat2dScaleLocal HomMat2dScaleLocal hom_mat2d_scale_local ,
hom_mat2d_rotate hom_mat2d_rotate HomMat2dRotate HomMat2dRotate HomMat2dRotate hom_mat2d_rotate ,
hom_mat2d_rotate_local hom_mat2d_rotate_local HomMat2dRotateLocal HomMat2dRotateLocal HomMat2dRotateLocal hom_mat2d_rotate_local ,
hom_mat2d_slant hom_mat2d_slant HomMat2dSlant HomMat2dSlant HomMat2dSlant hom_mat2d_slant ,
hom_mat2d_slant_local hom_mat2d_slant_local HomMat2dSlantLocal HomMat2dSlantLocal HomMat2dSlantLocal hom_mat2d_slant_local ,
hom_mat2d_reflect hom_mat2d_reflect HomMat2dReflect HomMat2dReflect HomMat2dReflect hom_mat2d_reflect ,
hom_mat2d_reflect_local hom_mat2d_reflect_local HomMat2dReflectLocal HomMat2dReflectLocal HomMat2dReflectLocal hom_mat2d_reflect_local
Modul
Foundation