Name
affine_trans_pixelT_affine_trans_pixelAffineTransPixelAffineTransPixel — Wendet eine beliebige affine 2D-Transformation auf Pixelkoordinaten an.
void AffineTransPixel(const HTuple& HomMat2D, const HTuple& Row, const HTuple& Col, HTuple* RowTrans, HTuple* ColTrans)
void HHomMat2D::AffineTransPixel(const HTuple& Row, const HTuple& Col, HTuple* RowTrans, HTuple* ColTrans) const
void HHomMat2D::AffineTransPixel(double Row, double Col, double* RowTrans, double* ColTrans) const
static void HOperatorSet.AffineTransPixel(HTuple homMat2D, HTuple row, HTuple col, out HTuple rowTrans, out HTuple colTrans)
void HHomMat2D.AffineTransPixel(HTuple row, HTuple col, out HTuple rowTrans, out HTuple colTrans)
void HHomMat2D.AffineTransPixel(double row, double col, out double rowTrans, out double colTrans)
affine_trans_pixelaffine_trans_pixelAffineTransPixelAffineTransPixelAffineTransPixel wendet eine beliebige affine 2D-Transformation
(Skalierung, Drehung, Verschiebung, Scherung) auf die Eingabepixel
(RowRowRowRowrow,ColColColColcol) an und liefert die Ergebnispixel in
(RowTransRowTransRowTransRowTransrowTrans,ColTransColTransColTransColTranscolTrans) zurück; die Ein- und Ausgabepixel sind
jeweils subpixelgenaue Punkte. Die Transformation wird durch eine homogene
Transformationsmatrix beschrieben, die in HomMat2DHomMat2DHomMat2DHomMat2DhomMat2D übergeben wird.
Im Gegensatz zu affine_trans_point_2daffine_trans_point_2dAffineTransPoint2dAffineTransPoint2dAffineTransPoint2d transformiert
affine_trans_pixelaffine_trans_pixelAffineTransPixelAffineTransPixelAffineTransPixel die Eingabepixelkoordinaten zuerst vom
HALCON-Standard-Koordinatensystem (mit dem Ursprung im Mittelpunkt des
oberen linken Pixels) in ein Koordinatensystem mit dem Ursprung in der
oberen linken Ecke des oberen linken Pixels. Das Ergebnis der darauf
folgenden Transformation mit HomMat2DHomMat2DHomMat2DHomMat2DhomMat2D wird dann wieder in das
Standard-Koordinatensystem zurücktransformiert. Dadurch ist
affine_trans_pixelaffine_trans_pixelAffineTransPixelAffineTransPixelAffineTransPixel mit den Operatoren
affine_trans_imageaffine_trans_imageAffineTransImageAffineTransImageAffineTransImage, affine_trans_image_sizeaffine_trans_image_sizeAffineTransImageSizeAffineTransImageSizeAffineTransImageSize,
affine_trans_regionaffine_trans_regionAffineTransRegionAffineTransRegionAffineTransRegion, affine_trans_contour_xldaffine_trans_contour_xldAffineTransContourXldAffineTransContourXldAffineTransContourXld und
affine_trans_polygon_xldaffine_trans_polygon_xldAffineTransPolygonXldAffineTransPolygonXldAffineTransPolygonXld kompatibel.
Eine Transformation mit affine_trans_pixelaffine_trans_pixelAffineTransPixelAffineTransPixelAffineTransPixel entspricht der folgenden
Kette von Transformationen (Ein- und Ausgabepixel als homogene Vektoren
dargestellt):
Damit entspricht
affine_trans_pixel (HomMat2D, Row, Col, RowTrans, ColTrans)
der folgenden Operatorfolge:
affine_trans_point_2d (HomMat2D, Row+0.5, Col+0.5, RowTmp, ColTmp)
RowTrans := RowTmp-0.5
ColTrans := ColTmp-0.5
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Eingabe-Transformationsmatrix.
RowRowRowRowrow (input_control) point.x(-array) → HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepixel (Zeilenkoordinate).
Defaultwert: 64
Wertevorschläge: 0, 16, 32, 64, 128, 256, 512, 1024
ColColColColcol (input_control) point.y(-array) → HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepixel (Spaltenkoordinate).
Defaultwert: 64
Wertevorschläge: 0, 16, 32, 64, 128, 256, 512, 1024
Ausgabepixel (Zeilenkoordinate).
Ausgabepixel (Spaltenkoordinate).
Falls die Matrix HomMat2DHomMat2DHomMat2DHomMat2DhomMat2D eine affine Abbildung darstellt
(d.h. keine projektive Abbildung), liefert
affine_trans_pixelaffine_trans_pixelAffineTransPixelAffineTransPixelAffineTransPixel den Wert 2 (H_MSG_TRUE) zurück. Ansonsten wird
eine Ausnahmebehandlung durchgeführt.
hom_mat2d_translatehom_mat2d_translateHomMat2dTranslateHomMat2dTranslateHomMat2dTranslate,
hom_mat2d_translate_localhom_mat2d_translate_localHomMat2dTranslateLocalHomMat2dTranslateLocalHomMat2dTranslateLocal,
hom_mat2d_scalehom_mat2d_scaleHomMat2dScaleHomMat2dScaleHomMat2dScale,
hom_mat2d_scale_localhom_mat2d_scale_localHomMat2dScaleLocalHomMat2dScaleLocalHomMat2dScaleLocal,
hom_mat2d_rotatehom_mat2d_rotateHomMat2dRotateHomMat2dRotateHomMat2dRotate,
hom_mat2d_rotate_localhom_mat2d_rotate_localHomMat2dRotateLocalHomMat2dRotateLocalHomMat2dRotateLocal,
hom_mat2d_slanthom_mat2d_slantHomMat2dSlantHomMat2dSlantHomMat2dSlant,
hom_mat2d_slant_localhom_mat2d_slant_localHomMat2dSlantLocalHomMat2dSlantLocalHomMat2dSlantLocal,
hom_mat2d_reflecthom_mat2d_reflectHomMat2dReflectHomMat2dReflectHomMat2dReflect,
hom_mat2d_reflect_localhom_mat2d_reflect_localHomMat2dReflectLocalHomMat2dReflectLocalHomMat2dReflectLocal
affine_trans_point_2daffine_trans_point_2dAffineTransPoint2dAffineTransPoint2dAffineTransPoint2d
Foundation