vector_angle_to_rigidT_vector_angle_to_rigidVectorAngleToRigidVectorAngleToRigid (Operator)

Name

vector_angle_to_rigidT_vector_angle_to_rigidVectorAngleToRigidVectorAngleToRigid — Berechnet eine starre affine Transformation aus Punkten und Winkeln.

Signatur

vector_angle_to_rigid( : : Row1, Column1, Angle1, Row2, Column2, Angle2 : HomMat2D)

Herror T_vector_angle_to_rigid(const Htuple Row1, const Htuple Column1, const Htuple Angle1, const Htuple Row2, const Htuple Column2, const Htuple Angle2, Htuple* HomMat2D)

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)

Beschreibung

vector_angle_to_rigidvector_angle_to_rigidVectorAngleToRigidVectorAngleToRigidVectorAngleToRigid 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 HomMat2DHomMat2DHomMat2DHomMat2DhomMat2D zurück. Diese beinhaltet 2 Komponenten: eine Rotationsmatrix R und einen Translationsvektor t (siehe auch hom_mat2d_rotatehom_mat2d_rotateHomMat2dRotateHomMat2dRotateHomMat2dRotate und hom_mat2d_translatehom_mat2d_translateHomMat2dTranslateHomMat2dTranslateHomMat2dTranslate):

Die Koordinaten des ursprünglichen Punktes werden in (Row1Row1Row1Row1row1,Column1Column1Column1Column1column1) übergeben, der zugehörige Winkel in Angle1Angle1Angle1Angle1angle1. Die Koordinaten des transformierten Punktes werden in (Row2Row2Row2Row2row2,Column2Column2Column2Column2column2) übergeben, der zugehörige Winkel in Angle2Angle2Angle2Angle2angle2. Die folgende Gleichung beschreibt die Transformation des Punktes mit Hilfe homogener Vektoren:

Der Operator vector_angle_to_rigidvector_angle_to_rigidVectorAngleToRigidVectorAngleToRigidVectorAngleToRigid ist insbesondere sinnvoll, um aus den Ergebnissen von Matching-Operatoren (z.B. find_shape_modelfind_shape_modelFindShapeModelFindShapeModelFindShapeModel) 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.

HomMat2DHomMat2DHomMat2DHomMat2DhomMat2D kann direkt mit den Operatoren, die Daten mit affinen Abbildungen transformieren, z.B. affine_trans_imageaffine_trans_imageAffineTransImageAffineTransImageAffineTransImage, verwendet werden.

Ausführungsinformationen

Parameter

Row1Row1Row1Row1row1 (input_control)  point.y HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Zeilenkoordinate des Ausgangspunkts.

Column1Column1Column1Column1column1 (input_control)  point.x HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Spaltenkoordinate des Ausgangspunkts.

Angle1Angle1Angle1Angle1angle1 (input_control)  angle.rad HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Winkel des Ausgangspunkts.

Row2Row2Row2Row2row2 (input_control)  point.y HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Zeilenkoordinate des transformierten Punkts.

Column2Column2Column2Column2column2 (input_control)  point.x HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Spaltenkoordinate des transformierten Punkts.

Angle2Angle2Angle2Angle2angle2 (input_control)  angle.rad HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Winkel des transformierten Punkts.

HomMat2DHomMat2DHomMat2DHomMat2DhomMat2D (output_control)  hom_mat2d HHomMat2D, HTupleHTupleHtuple (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_modelfind_shape_modelFindShapeModelFindShapeModelFindShapeModel

Nachfolger

hom_mat2d_inverthom_mat2d_invertHomMat2dInvertHomMat2dInvertHomMat2dInvert, affine_trans_imageaffine_trans_imageAffineTransImageAffineTransImageAffineTransImage, affine_trans_regionaffine_trans_regionAffineTransRegionAffineTransRegionAffineTransRegion, affine_trans_contour_xldaffine_trans_contour_xldAffineTransContourXldAffineTransContourXldAffineTransContourXld, affine_trans_polygon_xldaffine_trans_polygon_xldAffineTransPolygonXldAffineTransPolygonXldAffineTransPolygonXld, affine_trans_point_2daffine_trans_point_2dAffineTransPoint2dAffineTransPoint2dAffineTransPoint2d

Alternativen

vector_to_rigidvector_to_rigidVectorToRigidVectorToRigidVectorToRigid

Siehe auch

vector_field_to_hom_mat2dvector_field_to_hom_mat2dVectorFieldToHomMat2dVectorFieldToHomMat2dVectorFieldToHomMat2d

Modul

Foundation