polar_trans_contour_xldpolar_trans_contour_xldPolarTransContourXldPolarTransContourXld (Operator)

Name

polar_trans_contour_xldpolar_trans_contour_xldPolarTransContourXldPolarTransContourXld — Anwenden einer Polarkoordinatentransformation auf eine Kontur.

Signatur

polar_trans_contour_xld(Contour : PolarTransContour : Row, Column, AngleStart, AngleEnd, RadiusStart, RadiusEnd, Width, Height : )

Herror polar_trans_contour_xld(const Hobject Contour, Hobject* PolarTransContour, double Row, double Column, double AngleStart, double AngleEnd, double RadiusStart, double RadiusEnd, const Hlong Width, const Hlong Height)

Herror T_polar_trans_contour_xld(const Hobject Contour, Hobject* PolarTransContour, const Htuple Row, const Htuple Column, const Htuple AngleStart, const Htuple AngleEnd, const Htuple RadiusStart, const Htuple RadiusEnd, const Htuple Width, const Htuple Height)

void PolarTransContourXld(const HObject& Contour, HObject* PolarTransContour, const HTuple& Row, const HTuple& Column, const HTuple& AngleStart, const HTuple& AngleEnd, const HTuple& RadiusStart, const HTuple& RadiusEnd, const HTuple& Width, const HTuple& Height)

HXLDCont HXLDCont::PolarTransContourXld(const HTuple& Row, const HTuple& Column, double AngleStart, double AngleEnd, const HTuple& RadiusStart, const HTuple& RadiusEnd, Hlong Width, Hlong Height) const

HXLDCont HXLDCont::PolarTransContourXld(double Row, double Column, double AngleStart, double AngleEnd, double RadiusStart, double RadiusEnd, Hlong Width, Hlong Height) const

static void HOperatorSet.PolarTransContourXld(HObject contour, out HObject polarTransContour, HTuple row, HTuple column, HTuple angleStart, HTuple angleEnd, HTuple radiusStart, HTuple radiusEnd, HTuple width, HTuple height)

HXLDCont HXLDCont.PolarTransContourXld(HTuple row, HTuple column, double angleStart, double angleEnd, HTuple radiusStart, HTuple radiusEnd, int width, int height)

HXLDCont HXLDCont.PolarTransContourXld(double row, double column, double angleStart, double angleEnd, double radiusStart, double radiusEnd, int width, int height)

Beschreibung

polar_trans_contour_xldpolar_trans_contour_xldPolarTransContourXldPolarTransContourXldPolarTransContourXld transformiert eine Kontur ContourContourContourContourcontour im durch den Mittelpunkt (RowRowRowRowrow, ColumnColumnColumnColumncolumn), die Radien RadiusStartRadiusStartRadiusStartRadiusStartradiusStart und RadiusEndRadiusEndRadiusEndRadiusEndradiusEnd und die Winkel AngleStartAngleStartAngleStartAngleStartangleStart und AngleEndAngleEndAngleEndAngleEndangleEnd definierten Kreisring auf dessen Polarkoordinatendarstellung in einem virtuellen Bild mit den Dimensionen WidthWidthWidthWidthwidth x HeightHeightHeightHeightheight. Die Ausgabekontur wird an den Rändern dieses virtuellen Bildes beschnitten.

Die Koordinate (0,0) in der Ausgabekontur PolarTransContourPolarTransContourPolarTransContourPolarTransContourpolarTransContour entspricht immer dem Konturpunkt, der durch RadiusStartRadiusStartRadiusStartRadiusStartradiusStart und AngleStartAngleStartAngleStartAngleStartangleStart spezifiziert wird. Analog entspricht die Koordinate HeightHeightHeightHeightheight-1,WidthWidthWidthWidthwidth-1 in der Ausgabekontur immer dem Konturpunkt, der durch RadiusEndRadiusEndRadiusEndRadiusEndradiusEnd und AngleEndAngleEndAngleEndAngleEndangleEnd spezifiziert wird, auch wenn diese Punkte nicht in der Kontur ContourContourContourContourcontour enthalten sind. Im Normalfall (AngleStartAngleStartAngleStartAngleStartangleStart < AngleEndAngleEndAngleEndAngleEndangleEnd und RadiusStartRadiusStartRadiusStartRadiusStartradiusStart < RadiusEndRadiusEndRadiusEndRadiusEndradiusEnd) wird die Polarkoordinatentransformation also in mathematisch positiver Durchlaufrichtung (entgegen dem Uhrzeigersinn) durchgeführt. Dabei liegen die Punkte mit kleineren Radien im virtuellen Ausgabebild weiter oben. Durch geeignetes Vertauschen der Werte der Parameter (z.B. AngleStartAngleStartAngleStartAngleStartangleStart > AngleEndAngleEndAngleEndAngleEndangleEnd oder RadiusStartRadiusStartRadiusStartRadiusStartradiusStart > RadiusEndRadiusEndRadiusEndRadiusEndradiusEnd) kann jede beliebige Orientierung der Ausgabekontur erreicht werden.

Die Winkel sind frei als reelle Zahlen wählbar, Mittelpunkt und Radien können ebenfalls frei als reelle Zahlen gewählt werden.

PolarTransContourPolarTransContourPolarTransContourPolarTransContourpolarTransContour kann aus mehreren Konturen bestehen, da die Kontur ContourContourContourContourcontour an den Winkelgrenzen AngleStartAngleStartAngleStartAngleStartangleStart bzw. AngleEndAngleEndAngleEndAngleEndangleEnd geteilt werden kann. Außerdem kann die Länge des Winkelintervalls [AngleStartAngleStartAngleStartAngleStartangleStart,AngleEndAngleEndAngleEndAngleEndangleEnd] größer sein als 2pi.

Werden mehrere Konturen in ContourContourContourContourcontour übergeben, werden deren Polartransformationen individuell berechnet und als Tupel in PolarTransContourPolarTransContourPolarTransContourPolarTransContourpolarTransContour abgespeichert. Da eine Kontur bei der Transformation in mehrere Konturen geteilt werden kann, besteht kein Zusammenhang zwischen den Indizes des Eingabetupels ContourContourContourContourcontour und den Indizes des Ausgabetupels PolarTransContourPolarTransContourPolarTransContourPolarTransContourpolarTransContour.

Weitere Informationen

Ein Überblick zu den verschiedenen in HALCON verwendeten 2D Koordinatensystemen ist in der Einleitung zum Kapitel Transformationen / 2D-Transformationen gegeben.

Achtung

Es werden nur die Konturpunkte transformiert. Da die Polartransformation keine affine Abbildung ist, liefert der Operator polar_trans_contour_xldpolar_trans_contour_xldPolarTransContourXldPolarTransContourXldPolarTransContourXld nur dann brauchbare Ergebnisse, wenn die Abstände der Konturpunkte klein sind. Eventuelle Attribute werden nicht mittransformiert.

Ausführungsinformationen

Parameter

ContourContourContourContourcontour (input_object)  xld_cont(-array) objectHXLDContHXLDContHobject

Eingabekontur.

PolarTransContourPolarTransContourPolarTransContourPolarTransContourpolarTransContour (output_object)  xld_cont(-array) objectHXLDContHXLDContHobject *

Ergebniskontur.

RowRowRowRowrow (input_control)  number HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Zeilenkoordinate des Kreismittelpunktes.

Defaultwert: 256

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

Typischer Wertebereich: 0 ≤ Row Row Row Row row ≤ 32767

Restriktion: Row >= -131068 && Row <= 131068

ColumnColumnColumnColumncolumn (input_control)  number HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Spaltenkoordinate des Kreismittelpunktes.

Defaultwert: 256

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

Typischer Wertebereich: 0 ≤ Column Column Column Column column ≤ 32767

Restriktion: Column >= -131068 && Column <= 131068

AngleStartAngleStartAngleStartAngleStartangleStart (input_control)  angle.rad HTupleHTupleHtuple (real) (double) (double) (double)

Winkel, der auf die Spaltenkoordinate 0 in PolarTransContourPolarTransContourPolarTransContourPolarTransContourpolarTransContour abgebildet wird.

Defaultwert: 0.0

Wertevorschläge: 0.0, 0.78539816, 1.57079632, 3.141592654, 6.2831853, 12.566370616

Typischer Wertebereich: -6.2831853 ≤ AngleStart AngleStart AngleStart AngleStart angleStart ≤ 6.2831853

AngleEndAngleEndAngleEndAngleEndangleEnd (input_control)  angle.rad HTupleHTupleHtuple (real) (double) (double) (double)

Winkel, der auf die Spaltenkoordinate WidthWidthWidthWidthwidth-1 in PolarTransContourPolarTransContourPolarTransContourPolarTransContourpolarTransContour abgebildet wird.

Defaultwert: 6.2831853

Wertevorschläge: 0.0, 0.78539816, 1.57079632, 3.141592654, 6.2831853, 12.566370616

Typischer Wertebereich: -6.2831853 ≤ AngleEnd AngleEnd AngleEnd AngleEnd angleEnd ≤ 6.2831853

RadiusStartRadiusStartRadiusStartRadiusStartradiusStart (input_control)  number HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Kreisradius, der auf die Zeilenkoordinate 0 in PolarTransContourPolarTransContourPolarTransContourPolarTransContourpolarTransContour abgebildet wird.

Defaultwert: 0

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

Typischer Wertebereich: 0 ≤ RadiusStart RadiusStart RadiusStart RadiusStart radiusStart ≤ 32767

RadiusEndRadiusEndRadiusEndRadiusEndradiusEnd (input_control)  number HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Kreisradius, der auf die Zeilenkoordinate HeightHeightHeightHeightheight-1 in PolarTransContourPolarTransContourPolarTransContourPolarTransContourpolarTransContour abgebildet wird.

Defaultwert: 100

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

Typischer Wertebereich: 0 ≤ RadiusEnd RadiusEnd RadiusEnd RadiusEnd radiusEnd ≤ 32767

WidthWidthWidthWidthwidth (input_control)  extent.x HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Breite des virtuellen Zielbildes.

Defaultwert: 512

Wertevorschläge: 256, 320, 512, 640, 800, 1024

Typischer Wertebereich: 0 ≤ Width Width Width Width width ≤ 32767

HeightHeightHeightHeightheight (input_control)  extent.y HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Höhe des virtuellen Zielbildes.

Defaultwert: 512

Wertevorschläge: 240, 256, 480, 512, 600, 1024

Typischer Wertebereich: 0 ≤ Height Height Height Height height ≤ 32767

Siehe auch

polar_trans_image_extpolar_trans_image_extPolarTransImageExtPolarTransImageExtPolarTransImageExt, polar_trans_image_invpolar_trans_image_invPolarTransImageInvPolarTransImageInvPolarTransImageInv, polar_trans_regionpolar_trans_regionPolarTransRegionPolarTransRegionPolarTransRegion, polar_trans_region_invpolar_trans_region_invPolarTransRegionInvPolarTransRegionInvPolarTransRegionInv, polar_trans_contour_xld_invpolar_trans_contour_xld_invPolarTransContourXldInvPolarTransContourXldInvPolarTransContourXldInv

Modul

Foundation