vector_angle_to_rigid T_vector_angle_to_rigid VectorAngleToRigid VectorAngleToRigid vector_angle_to_rigid (Operator)
Name
vector_angle_to_rigid T_vector_angle_to_rigid VectorAngleToRigid VectorAngleToRigid vector_angle_to_rigid — Berechnet eine starre affine Transformation aus Punkten und Winkeln.
Signatur
void VectorAngleToRigid (const HTuple& Row1 , const HTuple& Column1 , const HTuple& Angle1 , const HTuple& Row2 , const HTuple& Column2 , const HTuple& Angle2 , HTuple* HomMat2D )
void HHomMat2D ::VectorAngleToRigid (const HTuple& Row1 , const HTuple& Column1 , const HTuple& Angle1 , const HTuple& Row2 , const HTuple& Column2 , const HTuple& Angle2 )
void HHomMat2D ::VectorAngleToRigid (double Row1 , double Column1 , double Angle1 , double Row2 , double Column2 , double Angle2 )
static void HOperatorSet .VectorAngleToRigid (HTuple row1 , HTuple column1 , HTuple angle1 , HTuple row2 , HTuple column2 , HTuple angle2 , out HTuple homMat2D )
void HHomMat2D .VectorAngleToRigid (HTuple row1 , HTuple column1 , HTuple angle1 , HTuple row2 , HTuple column2 , HTuple angle2 )
void HHomMat2D .VectorAngleToRigid (double row1 , double column1 , double angle1 , double row2 , double column2 , double angle2 )
def vector_angle_to_rigid (row_1 : Union[float, int], column_1 : Union[float, int], angle_1 : Union[float, int], row_2 : Union[float, int], column_2 : Union[float, int], angle_2 : Union[float, int]) -> Sequence[float]
Beschreibung
vector_angle_to_rigid vector_angle_to_rigid VectorAngleToRigid VectorAngleToRigid VectorAngleToRigid vector_angle_to_rigid berechnet aus einer Punktkorrespondenz und zwei
zugehörigen Winkeln eine starre affine Transformation, d.h. eine
Transformation bestehend aus Rotation und Translation, und liefert sie in der
homogenen Transformationsmatrix HomMat2D HomMat2D HomMat2D HomMat2D homMat2D hom_mat_2d zurück. Diese beinhaltet 2
Komponenten: eine Rotationsmatrix R und einen
Translationsvektor t (siehe auch
hom_mat2d_rotate hom_mat2d_rotate HomMat2dRotate HomMat2dRotate HomMat2dRotate hom_mat2d_rotate und hom_mat2d_translate hom_mat2d_translate HomMat2dTranslate HomMat2dTranslate HomMat2dTranslate hom_mat2d_translate ):
Die Koordinaten des ursprünglichen Punktes werden in
(Row1 Row1 Row1 Row1 row1 row_1 ,Column1 Column1 Column1 Column1 column1 column_1 ) übergeben, der zugehörige Winkel in
Angle1 Angle1 Angle1 Angle1 angle1 angle_1 . Die Koordinaten des transformierten Punktes werden in
(Row2 Row2 Row2 Row2 row2 row_2 ,Column2 Column2 Column2 Column2 column2 column_2 ) übergeben, der zugehörige Winkel in
Angle2 Angle2 Angle2 Angle2 angle2 angle_2 . Die folgende Gleichung beschreibt die Transformation des
Punktes mit Hilfe homogener Vektoren:
Der Operator vector_angle_to_rigid vector_angle_to_rigid VectorAngleToRigid VectorAngleToRigid VectorAngleToRigid vector_angle_to_rigid ist insbesondere sinnvoll, um aus
den Ergebnissen von Matching-Operatoren (z.B. find_shape_model find_shape_model FindShapeModel FindShapeModel FindShapeModel find_shape_model )
eine starre Transformation zu konstruieren, die
ein Referenzbild in das aktuelle Bild transformiert oder (wenn die Parameter
in der umgekehrten Reihenfolge übergeben werden) das aktuelle Bild in das
Referenzbild transformiert.
HomMat2D HomMat2D HomMat2D HomMat2D homMat2D hom_mat_2d kann direkt mit den Operatoren, die Daten mit affinen
Abbildungen transformieren, z.B. affine_trans_image affine_trans_image AffineTransImage AffineTransImage AffineTransImage affine_trans_image , 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
Row1 Row1 Row1 Row1 row1 row_1 (input_control) point.y → HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Zeilenkoordinate des Ausgangspunkts.
Column1 Column1 Column1 Column1 column1 column_1 (input_control) point.x → HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Spaltenkoordinate des Ausgangspunkts.
Angle1 Angle1 Angle1 Angle1 angle1 angle_1 (input_control) angle.rad → HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Winkel des Ausgangspunkts.
Row2 Row2 Row2 Row2 row2 row_2 (input_control) point.y → HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Zeilenkoordinate des transformierten Punkts.
Column2 Column2 Column2 Column2 column2 column_2 (input_control) point.x → HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Spaltenkoordinate des transformierten Punkts.
Angle2 Angle2 Angle2 Angle2 angle2 angle_2 (input_control) angle.rad → HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Winkel des transformierten Punkts.
HomMat2D HomMat2D HomMat2D HomMat2D homMat2D hom_mat_2d (output_control) hom_mat2d → HHomMat2D , HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Ausgabe-Transformationsmatrix.
Beispiel (HDevelop)
create_shape_model (ImageReduced, 0, rad(-45), rad(180), 0, \
'none', 'use_polarity', 30, 10, ModelID)
get_shape_model_contours (ModelXLD, ModelID, 1)
find_shape_model (SearchImage, ModelID, rad(-45), rad(180), \
0.5, 1, 0.5, 'interpolation', \
0, 0, Row, Column, Angle, Score)
* Create transformation matrix
vector_angle_to_rigid (0, 0, 0, Row, Column, Angle, HomMat2DObject)
* Transform model contours for visualization
affine_trans_contour_xld (ModelXLD, ObjectXLD, HomMat2DObject)
* Calculate true position of the model origin in the search image
affine_trans_pixel (HomMat2DObject, 0, 0, RowObject, ColObject)
Vorgänger
find_shape_model find_shape_model FindShapeModel FindShapeModel FindShapeModel find_shape_model
Nachfolger
hom_mat2d_invert hom_mat2d_invert HomMat2dInvert HomMat2dInvert HomMat2dInvert hom_mat2d_invert ,
affine_trans_image affine_trans_image AffineTransImage AffineTransImage AffineTransImage affine_trans_image ,
affine_trans_region affine_trans_region AffineTransRegion AffineTransRegion AffineTransRegion affine_trans_region ,
affine_trans_contour_xld affine_trans_contour_xld AffineTransContourXld AffineTransContourXld AffineTransContourXld affine_trans_contour_xld ,
affine_trans_polygon_xld affine_trans_polygon_xld AffineTransPolygonXld AffineTransPolygonXld AffineTransPolygonXld affine_trans_polygon_xld ,
affine_trans_point_2d affine_trans_point_2d AffineTransPoint2d AffineTransPoint2d AffineTransPoint2d affine_trans_point_2d
Alternativen
vector_to_rigid vector_to_rigid VectorToRigid VectorToRigid VectorToRigid vector_to_rigid
Siehe auch
vector_field_to_hom_mat2d vector_field_to_hom_mat2d VectorFieldToHomMat2d VectorFieldToHomMat2d VectorFieldToHomMat2d vector_field_to_hom_mat2d
Modul
Foundation