KlassenKlassenKlassenKlassen | | | | Operatoren

affine_trans_pixelT_affine_trans_pixelAffineTransPixelaffine_trans_pixelAffineTransPixelAffineTransPixel (Operator)

Name

affine_trans_pixelT_affine_trans_pixelAffineTransPixelaffine_trans_pixelAffineTransPixelAffineTransPixel — Wendet eine beliebige affine 2D-Transformation auf Pixelkoordinaten an.

Signatur

affine_trans_pixel( : : HomMat2D, Row, Col : RowTrans, ColTrans)

Herror T_affine_trans_pixel(const Htuple HomMat2D, const Htuple Row, const Htuple Col, Htuple* RowTrans, Htuple* ColTrans)

Herror affine_trans_pixel(const HTuple& HomMat2D, const HTuple& Row, const HTuple& Col, double* RowTrans, double* ColTrans)

Herror affine_trans_pixel(const HTuple& HomMat2D, const HTuple& Row, const HTuple& Col, HTuple* RowTrans, HTuple* ColTrans)

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

void HOperatorSetX.AffineTransPixel(
[in] VARIANT HomMat2d, [in] VARIANT Row, [in] VARIANT Col, [out] VARIANT* RowTrans, [out] VARIANT* ColTrans)

VARIANT HHomMat2DX.AffineTransPixel(
[in] VARIANT Row, [in] VARIANT Col, [out] VARIANT* ColTrans)

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)

Beschreibung

affine_trans_pixelaffine_trans_pixelAffineTransPixelaffine_trans_pixelAffineTransPixelAffineTransPixel wendet eine beliebige affine 2D-Transformation (Skalierung, Drehung, Verschiebung, Scherung) auf die Eingabepixel (RowRowRowRowRowrow,ColColColColColcol) an und liefert die Ergebnispixel in (RowTransRowTransRowTransRowTransRowTransrowTrans,ColTransColTransColTransColTransColTranscolTrans) zurück; die Ein- und Ausgabepixel sind jeweils subpixelgenaue Punkte. Die Transformation wird durch eine homogene Transformationsmatrix beschrieben, die in HomMat2DHomMat2DHomMat2DHomMat2DHomMat2DhomMat2D übergeben wird.

Im Gegensatz zu affine_trans_point_2daffine_trans_point_2dAffineTransPoint2daffine_trans_point_2dAffineTransPoint2dAffineTransPoint2d transformiert affine_trans_pixelaffine_trans_pixelAffineTransPixelaffine_trans_pixelAffineTransPixelAffineTransPixel 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 HomMat2DHomMat2DHomMat2DHomMat2DHomMat2DhomMat2D wird dann wieder in das Standard-Koordinatensystem zurücktransformiert. Dadurch ist affine_trans_pixelaffine_trans_pixelAffineTransPixelaffine_trans_pixelAffineTransPixelAffineTransPixel mit den Operatoren affine_trans_imageaffine_trans_imageAffineTransImageaffine_trans_imageAffineTransImageAffineTransImage, affine_trans_image_sizeaffine_trans_image_sizeAffineTransImageSizeaffine_trans_image_sizeAffineTransImageSizeAffineTransImageSize, affine_trans_regionaffine_trans_regionAffineTransRegionaffine_trans_regionAffineTransRegionAffineTransRegion, affine_trans_contour_xldaffine_trans_contour_xldAffineTransContourXldaffine_trans_contour_xldAffineTransContourXldAffineTransContourXld und affine_trans_polygon_xldaffine_trans_polygon_xldAffineTransPolygonXldaffine_trans_polygon_xldAffineTransPolygonXldAffineTransPolygonXld kompatibel.

Eine Transformation mit affine_trans_pixelaffine_trans_pixelAffineTransPixelaffine_trans_pixelAffineTransPixelAffineTransPixel 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

Parallelisierung

Parameter

HomMat2DHomMat2DHomMat2DHomMat2DHomMat2DhomMat2D (input_control)  hom_mat2d HHomMat2D, HTupleHTupleHTupleHHomMat2DX, VARIANTHtuple (real) (double) (double) (double) (double) (double)

Eingabe-Transformationsmatrix.

RowRowRowRowRowrow (input_control)  point.x(-array) HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Eingabepixel (Zeilenkoordinate).

Defaultwert: 64

Wertevorschläge: 0, 16, 32, 64, 128, 256, 512, 1024

ColColColColColcol (input_control)  point.y(-array) HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Eingabepixel (Spaltenkoordinate).

Defaultwert: 64

Wertevorschläge: 0, 16, 32, 64, 128, 256, 512, 1024

RowTransRowTransRowTransRowTransRowTransrowTrans (output_control)  point.x(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Ausgabepixel (Zeilenkoordinate).

ColTransColTransColTransColTransColTranscolTrans (output_control)  point.y(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Ausgabepixel (Spaltenkoordinate).

Ergebnis

Falls die Matrix HomMat2DHomMat2DHomMat2DHomMat2DHomMat2DhomMat2D eine affine Abbildung darstellt (d.h. keine projektive Abbildung), liefert affine_trans_pixelaffine_trans_pixelAffineTransPixelaffine_trans_pixelAffineTransPixelAffineTransPixel den Wert 2 (H_MSG_TRUE) zurück. Ansonsten wird eine Ausnahmebehandlung durchgeführt.

Vorgänger

hom_mat2d_translatehom_mat2d_translateHomMat2dTranslatehom_mat2d_translateHomMat2dTranslateHomMat2dTranslate, hom_mat2d_translate_localhom_mat2d_translate_localHomMat2dTranslateLocalhom_mat2d_translate_localHomMat2dTranslateLocalHomMat2dTranslateLocal, hom_mat2d_scalehom_mat2d_scaleHomMat2dScalehom_mat2d_scaleHomMat2dScaleHomMat2dScale, hom_mat2d_scale_localhom_mat2d_scale_localHomMat2dScaleLocalhom_mat2d_scale_localHomMat2dScaleLocalHomMat2dScaleLocal, hom_mat2d_rotatehom_mat2d_rotateHomMat2dRotatehom_mat2d_rotateHomMat2dRotateHomMat2dRotate, hom_mat2d_rotate_localhom_mat2d_rotate_localHomMat2dRotateLocalhom_mat2d_rotate_localHomMat2dRotateLocalHomMat2dRotateLocal, hom_mat2d_slanthom_mat2d_slantHomMat2dSlanthom_mat2d_slantHomMat2dSlantHomMat2dSlant, hom_mat2d_slant_localhom_mat2d_slant_localHomMat2dSlantLocalhom_mat2d_slant_localHomMat2dSlantLocalHomMat2dSlantLocal, hom_mat2d_reflecthom_mat2d_reflectHomMat2dReflecthom_mat2d_reflectHomMat2dReflectHomMat2dReflect, hom_mat2d_reflect_localhom_mat2d_reflect_localHomMat2dReflectLocalhom_mat2d_reflect_localHomMat2dReflectLocalHomMat2dReflectLocal

Alternativen

affine_trans_point_2daffine_trans_point_2dAffineTransPoint2daffine_trans_point_2dAffineTransPoint2dAffineTransPoint2d

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren