polar_trans_contour_xld_inv — Rücktransformieren einer Kontur in Polarkoordinaten
polar_trans_contour_xld_inv(PolarContour : XYTransContour : Row, Column, AngleStart, AngleEnd, RadiusStart, RadiusEnd, WidthIn, HeightIn, Width, Height : )
polar_trans_contour_xld_inv transformiert die
Polarkoordinatendarstellung eines Kontur, gespeichert in
PolarContour, zurück auf einen Kreisring in kartesischen
Koordinaten, der durch die Radien RadiusStart und
RadiusEnd sowie durch die Winkel AngleStart und
AngleEnd beschrieben ist und dessen Mittelpunkt in
(Row, Column) liegt. Alle diese Werte können frei
aus den reellen Zahlen gewählt werden. Die Gesamtgröße des
Ausgabebildes beträgt Width x Height
Pixel. Zusätzlich müssen die Dimensionen des virtuellen
Eingabebildes, welches die Kontur PolarContour enthält, in
WidthIn und HeightIn übergeben
werden. WidthIn-1 ist die Spaltenkoordinate, die
AngleEnd entspricht und HeightIn-1 ist die
Zeilenkoordinate, die RadiusEnd
entspricht. AngleStart bzw. RadiusStart entspricht
der Spalten- bzw. Zeilenkoordinate 0. Außerdem müssen die
Dimensionen des virtuellen Ausgabebildes, welches die Region
XYTransContour enthält, in Width und
Height übergeben werden. An dessen Rändern wird die
Ausgabekontur beschnitten.
polar_trans_contour_xld_inv ist die exakte Umkehrfunktion zu
polar_trans_contour_xld.
Die Aufrufsequenz:
polar_trans_contour_xld(Contour, PolarContour, Row, Column, rad(360), 0, 0,
Radius, Width, Height)
polar_trans_contour_xld_inv(PolarContour, XYTransContour, Row, Column,
rad(360), 0, 0, Radius, Width, Height,
WidthOut, HeightOut)
liefert in der Ausgabekontur XYTransCont die Kontur
Image eingeschränkt auf den Kreis um (Row,
Column) mit Radius Radius zurück.
XYTransContour kann aus mehreren Konturen bestehen, da die
Kontur PolarContour an den Rändern des virtuellen
Ausgabebildes, das durch Width und Height
definiert wird, beschnitten wird.
Werden mehrere Konturen in PolarContour übergeben, werden
deren Transformationen individuell berechnet und als Tupel in
XYTransContour abgespeichert. Da eine Kontur bei der
Transformation in mehrere Konturen geteilt werden kann, besteht kein
Zusammenhang zwischen den Indizes des Eingabetupels
PolarContour und den Indizes des Ausgabetupels
XYTransContour.
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_inv nur dann brauchbare Ergebnisse,
wenn die Abstände der Konturpunkte klein sind. Eventuelle Attribute
werden nicht mittransformiert.
PolarContour (input_object) xld_cont(-array) → object
Eingabekontur.
XYTransContour (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, auf den die Spaltenkoordinate 0
von PolarContour abgebildet wird.
Defaultwert: 0.0
Wertevorschläge: 0.0, 0.78539816, 1.57079632, 3.141592654, 6.2831853
Typischer Wertebereich: -6.2831853
≤
AngleStart
≤
6.2831853
AngleEnd (input_control) angle.rad → (real)
Winkel, auf den die Spaltenkoordinate WidthIn
-1 in PolarContour abgebildet wird.
Defaultwert: 6.2831853
Wertevorschläge: 0.0, 0.78539816, 1.57079632, 3.141592654, 6.2831853
Typischer Wertebereich: -6.2831853
≤
AngleEnd
≤
6.2831853
RadiusStart (input_control) number → (real / integer)
Kreisradius, auf den die Zeilenkoordinate 0
in PolarContour 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, auf den die Zeilenkoordinate
HeightIn-1 in PolarContour
abgebildet wird.
Defaultwert: 100
Wertevorschläge: 0, 16, 32, 64, 100, 128, 256, 512
Typischer Wertebereich: 0
≤
RadiusEnd
≤
32767
WidthIn (input_control) extent.x → (integer)
Breite des virtuellen Eingabebildes.
Defaultwert: 512
Wertevorschläge: 256, 320, 512, 640, 800, 1024
Typischer Wertebereich: 0
≤
WidthIn
≤
32767
HeightIn (input_control) extent.y → (integer)
Höhe des virtuellen Eingabebildes.
Defaultwert: 512
Wertevorschläge: 240, 256, 480, 512, 600, 1024
Typischer Wertebereich: 0
≤
HeightIn
≤
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
Foundation