Name
vector_angle_to_rigidT_vector_angle_to_rigidVectorAngleToRigidvector_angle_to_rigidVectorAngleToRigidVectorAngleToRigid — Berechnet eine starre affine Transformation aus Punkten und Winkeln.
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)
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 oder
best_match_rot_mgbest_match_rot_mgBestMatchRotMgbest_match_rot_mgBestMatchRotMgBestMatchRotMg) 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.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Row1Row1Row1Row1Row1row1 (input_control) point.y → HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)
Zeilenkoordinate des Ausgangspunkts.
Spaltenkoordinate des Ausgangspunkts.
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.
Spaltenkoordinate des transformierten Punkts.
Winkel des transformierten Punkts.
Ausgabe-Transformationsmatrix.
draw_rectangle2 (WindowID, RowTempl, ColumnTempl, PhiTempl, Length1, Length2)
gen_rectangle2 (Rectangle, RowTempl, ColumnTempl, PhiTempl, Length1, Length2)
reduce_domain (ImageTempl, Rectangle, ImageReduced)
create_template_rot (ImageReduced, 4, 0, rad(360), rad(1), 'sort', \
'original', TemplateID)
while (true)
best_match_rot_mg (Image, TemplateID, 0, rad(360), 30, 'true', 4, Row, \
Column, Angle, ErrMatch)
if (ErrMatch<255)
vector_angle_to_rigid (Row, Column, Angle, RowTempl, \
ColumnTempl, 0, HomMat2D)
affine_trans_image (Image, ImageAffinTrans, HomMat2D, 'constant', \
'false')
endif
endwhile
clear_template (TemplateID)
best_match_rot_mgbest_match_rot_mgBestMatchRotMgbest_match_rot_mgBestMatchRotMgBestMatchRotMg,
best_match_rotbest_match_rotBestMatchRotbest_match_rotBestMatchRotBestMatchRot
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
vector_to_rigidvector_to_rigidVectorToRigidvector_to_rigidVectorToRigidVectorToRigid
vector_field_to_hom_mat2dvector_field_to_hom_mat2dVectorFieldToHomMat2dvector_field_to_hom_mat2dVectorFieldToHomMat2dVectorFieldToHomMat2d
Foundation