polar_trans_image_inv
— Rücktransformieren eines Polarkoordinatenbildes
polar_trans_image_inv(PolarImage : XYTransImage : Row, Column, AngleStart, AngleEnd, RadiusStart, RadiusEnd, Width, Height, Interpolation : )
polar_trans_image_inv
transformiert die
Polarkoordinatendarstellung eines Bildes, gespeichert in
PolarImage
, 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.
Über den Parameter Interpolation
kann dabei zwischen den
Interpolationsverfahren 'bilinear' und
'nearest_neighbor' gewählt werden. Bei
'nearest_neighbor' wird der Grauwert des Pixels im
Ausgabebild aus dem Grauwert des nächstgelegenen Pixels im
Eingabebild bestimmt. Bei 'bilinear' wird der Grauwert des
Pixels im Ausgabebild durch bilineare Interpolation aus den
Grauwerten der vier nächstgelegenen Pixel im Eingabebild bestimmt.
Der Modus 'bilinear' liefert qualitativ bessere Ergebnisse,
ist allerdings auch langsamer als 'nearest_neighbor' .
Die Winkel und Radien sind inklusive, die erste Zeile des
Eingabebildes wird also auf einen Kreis im Abstand
RadiusStart
vom angegebenen Mittelpunkt abgebildet, die
letzte Zeile auf einen Kreis im Abstand RadiusEnd
.
polar_trans_image_inv
ist die exakte Umkehrfunktion zu
polar_trans_image_ext
.
Die Aufrufsequenz: polar_trans_image_ext(Image, PolarImage, Row, Column, rad(360), 0, 0, Radius, Width, Height, Interpolation) polar_trans_image_inv(PolarImage, XYTransImage, Row, Column, rad(360), 0, 0, Radius, Width, Height, Interpolation)
liefert im Ausgabebild XYTransImage
das Bild
'Image' eingeschränkt auf den Kreis um
(Row
, Column
) mit Radius
'Radius' zurück.
polar_trans_image_inv
kann auf OpenCL Geräten ausgeführt werden.
Dabei kann es zu geringfügigen Abweichungen des Ergebnisses gegenüber der
Ausführung auf der CPU kommen.
Für Bilder vom Typ 'byte' , 'int2' oder 'uint2' kann
mittels des Systemparameters 'int_zooming' (siehe
set_system
) zwischen schneller Berechnung in Festkommaarithmetik
('int_zooming' = 'true' ) und hochgenauer Berechung in
Fließkommaarithmetik ('int_zooming' = 'false' ) gewählt
werden. Bei der Festkommaberechnung kann es aber zu leichten
Grauwertabweichungen kommen. Auch die Domäne der Ergebnisbilder kann sich
in diesem Fall leicht unterscheiden.
Ein Überblick zu den verschiedenen in HALCON verwendeten 2D Koordinatensystemen ist in der Einleitung zum Kapitel Transformationen / 2D-Transformationen gegeben.
PolarImage
(input_object) (multichannel-)image(-array) →
object (byte* / int2* / uint2* / real*) *erlaubt für Compute Devices
Eingabebild.
XYTransImage
(output_object) (multichannel-)image(-array) →
object (byte / int2 / uint2 / real)
Ergebnisbild.
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
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
AngleStart
(input_control) angle.rad →
(real)
Winkel, der die erste Spalte des Eingabebildes definiert.
Defaultwert: 0.0
Wertevorschläge: 0.0, 0.78539816, 1.57079632, 3.141592654, 6.2831853
AngleEnd
(input_control) angle.rad →
(real)
Winkel, der die letzte Spalte des Eingabebildes definiert.
Defaultwert: 6.2831853
Wertevorschläge: 0.0, 0.78539816, 1.57079632, 3.141592654, 6.2831853
RadiusStart
(input_control) number →
(real / integer)
Kreisradius, der die erste Zeile des Eingabebildes definiert.
Defaultwert: 0
Wertevorschläge: 0, 16, 32, 64, 100, 128, 256, 512
Typischer Wertebereich: 0
≤
RadiusStart
RadiusEnd
(input_control) number →
(real / integer)
Kreisradius, der die letzte Zeile des Eingabebildes definiert.
Defaultwert: 100
Wertevorschläge: 0, 16, 32, 64, 100, 128, 256, 512
Typischer Wertebereich: 0
≤
RadiusEnd
Width
(input_control) extent.x →
(integer)
Breite des 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 Zielbildes.
Defaultwert: 512
Wertevorschläge: 240, 256, 480, 512, 600, 1024
Typischer Wertebereich: 0
≤
Height
≤
32767
Interpolation
(input_control) string →
(string)
Interpolationsverfahren für die Transformation.
Defaultwert: 'nearest_neighbor'
Werteliste: 'bilinear' , 'nearest_neighbor'
polar_trans_image_ext
,
polar_trans_region
,
polar_trans_region_inv
,
polar_trans_contour_xld
,
polar_trans_contour_xld_inv
Foundation