KlassenKlassenKlassenKlassen | | | | Operatoren

vector_angle_to_rigidT_vector_angle_to_rigidVectorAngleToRigidvector_angle_to_rigidVectorAngleToRigidVectorAngleToRigid (Operator)

Name

vector_angle_to_rigidT_vector_angle_to_rigidVectorAngleToRigidvector_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)

Herror 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)

void HOperatorSetX.VectorAngleToRigid(
[in] VARIANT Row1, [in] VARIANT Column1, [in] VARIANT Angle1, [in] VARIANT Row2, [in] VARIANT Column2, [in] VARIANT Angle2, [out] VARIANT* HomMat2d)

void HHomMat2DX.VectorAngleToRigid(
[in] VARIANT Row1, [in] VARIANT Column1, [in] VARIANT Angle1, [in] VARIANT Row2, [in] VARIANT Column2, [in] VARIANT 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_rigidVectorAngleToRigidvector_angle_to_rigidVectorAngleToRigidVectorAngleToRigid 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 HomMat2DHomMat2DHomMat2DHomMat2DHomMat2DhomMat2D zurück. Diese beinhaltet 2 Komponenten: eine Rotationsmatrix R und einen Translationsvektor t (siehe auch hom_mat2d_rotatehom_mat2d_rotateHomMat2dRotatehom_mat2d_rotateHomMat2dRotateHomMat2dRotate und hom_mat2d_translatehom_mat2d_translateHomMat2dTranslatehom_mat2d_translateHomMat2dTranslateHomMat2dTranslate):

Die Koordinaten des ursprünglichen Punktes werden in (Row1Row1Row1Row1Row1row1,Column1Column1Column1Column1Column1column1) übergeben, der zugehörige Winkel in Angle1Angle1Angle1Angle1Angle1angle1. Die Koordinaten des transformierten Punktes werden in (Row2Row2Row2Row2Row2row2,Column2Column2Column2Column2Column2column2) übergeben, der zugehörige Winkel in Angle2Angle2Angle2Angle2Angle2angle2. Die folgende Gleichung beschreibt die Transformation des Punktes mit Hilfe homogener Vektoren:

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

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

Parallelisierung

Parameter

Row1Row1Row1Row1Row1row1 (input_control)  point.y HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Zeilenkoordinate des Ausgangspunkts.

Column1Column1Column1Column1Column1column1 (input_control)  point.x HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Spaltenkoordinate des Ausgangspunkts.

Angle1Angle1Angle1Angle1Angle1angle1 (input_control)  angle.rad HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Winkel des Ausgangspunkts.

Row2Row2Row2Row2Row2row2 (input_control)  point.y HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Zeilenkoordinate des transformierten Punkts.

Column2Column2Column2Column2Column2column2 (input_control)  point.x HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Spaltenkoordinate des transformierten Punkts.

Angle2Angle2Angle2Angle2Angle2angle2 (input_control)  angle.rad HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Winkel des transformierten Punkts.

HomMat2DHomMat2DHomMat2DHomMat2DHomMat2DhomMat2D (output_control)  hom_mat2d HHomMat2D, HTupleHTupleHTupleHHomMat2DX, VARIANTHtuple (real) (double) (double) (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)
clear_shape_model(ModelID)

Vorgänger

find_shape_modelfind_shape_modelFindShapeModelfind_shape_modelFindShapeModelFindShapeModel

Nachfolger

hom_mat2d_inverthom_mat2d_invertHomMat2dInverthom_mat2d_invertHomMat2dInvertHomMat2dInvert, affine_trans_imageaffine_trans_imageAffineTransImageaffine_trans_imageAffineTransImageAffineTransImage, affine_trans_regionaffine_trans_regionAffineTransRegionaffine_trans_regionAffineTransRegionAffineTransRegion, affine_trans_contour_xldaffine_trans_contour_xldAffineTransContourXldaffine_trans_contour_xldAffineTransContourXldAffineTransContourXld, affine_trans_polygon_xldaffine_trans_polygon_xldAffineTransPolygonXldaffine_trans_polygon_xldAffineTransPolygonXldAffineTransPolygonXld, affine_trans_point_2daffine_trans_point_2dAffineTransPoint2daffine_trans_point_2dAffineTransPoint2dAffineTransPoint2d

Alternativen

vector_to_rigidvector_to_rigidVectorToRigidvector_to_rigidVectorToRigidVectorToRigid

Siehe auch

vector_field_to_hom_mat2dvector_field_to_hom_mat2dVectorFieldToHomMat2dvector_field_to_hom_mat2dVectorFieldToHomMat2dVectorFieldToHomMat2d

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren