polar_trans_contour_xld
— Anwenden einer Polarkoordinatentransformation auf eine Kontur.
polar_trans_contour_xld(Contour : PolarTransContour : Row, Column, AngleStart, AngleEnd, RadiusStart, RadiusEnd, Width, Height : )
polar_trans_contour_xld
transformiert eine Kontur
Contour
im durch den Mittelpunkt (Row
,
Column
), die Radien RadiusStart
und
RadiusEnd
und die Winkel AngleStart
und
AngleEnd
definierten Kreisring auf dessen
Polarkoordinatendarstellung in einem virtuellen Bild mit den
Dimensionen Width
x Height
. Die
Ausgabekontur wird an den Rändern dieses virtuellen Bildes
beschnitten.
Die Koordinate (0,0) in der Ausgabekontur
PolarTransContour
entspricht immer dem Konturpunkt, der
durch RadiusStart
und AngleStart
spezifiziert
wird. Analog entspricht die Koordinate
Height
-1,Width
-1 in der Ausgabekontur immer dem
Konturpunkt, der durch RadiusEnd
und AngleEnd
spezifiziert wird, auch wenn diese Punkte nicht in der Kontur
Contour
enthalten sind. Im Normalfall (AngleStart
< AngleEnd
und RadiusStart
<
RadiusEnd
) 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. AngleStart
>
AngleEnd
oder RadiusStart
> RadiusEnd
)
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.
PolarTransContour
kann aus mehreren Konturen bestehen, da
die Kontur Contour
an den Winkelgrenzen AngleStart
bzw. AngleEnd
geteilt werden kann. Außerdem kann die Länge
des Winkelintervalls [AngleStart
,AngleEnd
]
größer sein als 2pi.
Werden mehrere Konturen in Contour
übergeben, werden deren
Polartransformationen individuell berechnet und als Tupel in
PolarTransContour
abgespeichert. Da eine Kontur bei der
Transformation in mehrere Konturen geteilt werden kann, besteht kein
Zusammenhang zwischen den Indizes des Eingabetupels Contour
und den Indizes des Ausgabetupels PolarTransContour
.
Ein Überblick zu den verschiedenen in HALCON verwendeten 2D Koordinatensystemen ist in der Einleitung zum Kapitel Transformationen / 2D-Transformationen gegeben.
Es werden nur die Konturpunkte transformiert. Da die
Polartransformation keine affine Abbildung ist, liefert der Operator
polar_trans_contour_xld
nur dann brauchbare Ergebnisse, wenn
die Abstände der Konturpunkte klein sind. Eventuelle Attribute
werden nicht mittransformiert.
Contour
(input_object) xld_cont(-array) →
object
Eingabekontur.
PolarTransContour
(output_object) xld_cont(-array) →
object
Ergebniskontur.
Row
(input_control) number →
(real / integer)
Zeilenkoordinate des Kreismittelpunktes.
Defaultwert: 256
Wertevorschläge: 0, 16, 32, 64, 128, 240, 256, 480, 512
Typischer Wertebereich: 0
≤
Row
≤
32767
Restriktion: Row >= -131068 && Row <= 131068
Column
(input_control) number →
(real / integer)
Spaltenkoordinate des Kreismittelpunktes.
Defaultwert: 256
Wertevorschläge: 0, 16, 32, 64, 128, 256, 320, 512, 640
Typischer Wertebereich: 0
≤
Column
≤
32767
Restriktion: Column >= -131068 && Column <= 131068
AngleStart
(input_control) angle.rad →
(real)
Winkel, der auf die Spaltenkoordinate 0 in
PolarTransContour
abgebildet wird.
Defaultwert: 0.0
Wertevorschläge: 0.0, 0.78539816, 1.57079632, 3.141592654, 6.2831853, 12.566370616
Typischer Wertebereich: -6.2831853
≤
AngleStart
≤
6.2831853
AngleEnd
(input_control) angle.rad →
(real)
Winkel, der auf die Spaltenkoordinate Width
-1
in PolarTransContour
abgebildet wird.
Defaultwert: 6.2831853
Wertevorschläge: 0.0, 0.78539816, 1.57079632, 3.141592654, 6.2831853, 12.566370616
Typischer Wertebereich: -6.2831853
≤
AngleEnd
≤
6.2831853
RadiusStart
(input_control) number →
(real / integer)
Kreisradius, der auf die Zeilenkoordinate 0
in PolarTransContour
abgebildet wird.
Defaultwert: 0
Wertevorschläge: 0, 16, 32, 64, 100, 128, 256, 512
Typischer Wertebereich: 0
≤
RadiusStart
≤
32767
RadiusEnd
(input_control) number →
(real / integer)
Kreisradius, der auf die Zeilenkoordinate
Height
-1 in PolarTransContour
abgebildet wird.
Defaultwert: 100
Wertevorschläge: 0, 16, 32, 64, 100, 128, 256, 512
Typischer Wertebereich: 0
≤
RadiusEnd
≤
32767
Width
(input_control) extent.x →
(integer)
Breite des virtuellen Zielbildes.
Defaultwert: 512
Wertevorschläge: 256, 320, 512, 640, 800, 1024
Typischer Wertebereich: 0
≤
Width
≤
32767
Height
(input_control) extent.y →
(integer)
Höhe des virtuellen Zielbildes.
Defaultwert: 512
Wertevorschläge: 240, 256, 480, 512, 600, 1024
Typischer Wertebereich: 0
≤
Height
≤
32767
polar_trans_image_ext
,
polar_trans_image_inv
,
polar_trans_region
,
polar_trans_region_inv
,
polar_trans_contour_xld_inv
Foundation