polar_trans_image_invpolar_trans_image_invPolarTransImageInvPolarTransImageInv (Operator)
Name
polar_trans_image_invpolar_trans_image_invPolarTransImageInvPolarTransImageInv — Rücktransformieren eines Polarkoordinatenbildes
Signatur
Herror polar_trans_image_inv(const Hobject PolarImage, Hobject* XYTransImage, double Row, double Column, double AngleStart, double AngleEnd, double RadiusStart, double RadiusEnd, const Hlong Width, const Hlong Height, const char* Interpolation)
Herror T_polar_trans_image_inv(const Hobject PolarImage, Hobject* XYTransImage, const Htuple Row, const Htuple Column, const Htuple AngleStart, const Htuple AngleEnd, const Htuple RadiusStart, const Htuple RadiusEnd, const Htuple Width, const Htuple Height, const Htuple Interpolation)
void PolarTransImageInv(const HObject& PolarImage, HObject* XYTransImage, const HTuple& Row, const HTuple& Column, const HTuple& AngleStart, const HTuple& AngleEnd, const HTuple& RadiusStart, const HTuple& RadiusEnd, const HTuple& Width, const HTuple& Height, const HTuple& Interpolation)
HImage HImage::PolarTransImageInv(const HTuple& Row, const HTuple& Column, double AngleStart, double AngleEnd, const HTuple& RadiusStart, const HTuple& RadiusEnd, Hlong Width, Hlong Height, const HString& Interpolation) const
HImage HImage::PolarTransImageInv(double Row, double Column, double AngleStart, double AngleEnd, double RadiusStart, double RadiusEnd, Hlong Width, Hlong Height, const HString& Interpolation) const
HImage HImage::PolarTransImageInv(double Row, double Column, double AngleStart, double AngleEnd, double RadiusStart, double RadiusEnd, Hlong Width, Hlong Height, const char* Interpolation) const
HImage HImage::PolarTransImageInv(double Row, double Column, double AngleStart, double AngleEnd, double RadiusStart, double RadiusEnd, Hlong Width, Hlong Height, const wchar_t* Interpolation) const
(Nur Windows)
static void HOperatorSet.PolarTransImageInv(HObject polarImage, out HObject XYTransImage, HTuple row, HTuple column, HTuple angleStart, HTuple angleEnd, HTuple radiusStart, HTuple radiusEnd, HTuple width, HTuple height, HTuple interpolation)
HImage HImage.PolarTransImageInv(HTuple row, HTuple column, double angleStart, double angleEnd, HTuple radiusStart, HTuple radiusEnd, int width, int height, string interpolation)
HImage HImage.PolarTransImageInv(double row, double column, double angleStart, double angleEnd, double radiusStart, double radiusEnd, int width, int height, string interpolation)
Beschreibung
polar_trans_image_invpolar_trans_image_invPolarTransImageInvPolarTransImageInvPolarTransImageInv transformiert die
Polarkoordinatendarstellung eines Bildes, gespeichert in
PolarImagePolarImagePolarImagePolarImagepolarImage, zurück auf einen Kreisring in kartesischen
Koordinaten, der durch die Radien RadiusStartRadiusStartRadiusStartRadiusStartradiusStart und
RadiusEndRadiusEndRadiusEndRadiusEndradiusEnd sowie durch die Winkel AngleStartAngleStartAngleStartAngleStartangleStart und
AngleEndAngleEndAngleEndAngleEndangleEnd beschrieben ist und dessen Mittelpunkt in
(RowRowRowRowrow, ColumnColumnColumnColumncolumn) liegt. Alle diese Werte können frei
aus den reellen Zahlen gewählt werden. Die Gesamtgröße des
Ausgabebildes beträgt WidthWidthWidthWidthwidth x
HeightHeightHeightHeightheight Pixel.
Über den Parameter InterpolationInterpolationInterpolationInterpolationinterpolation kann dabei zwischen den
Interpolationsverfahren 'bilinear'"bilinear""bilinear""bilinear""bilinear" und
'nearest_neighbor'"nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor" gewählt werden. Bei
'nearest_neighbor'"nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor" wird der Grauwert des Pixels im
Ausgabebild aus dem Grauwert des nächstgelegenen Pixels im
Eingabebild bestimmt. Bei 'bilinear'"bilinear""bilinear""bilinear""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'"bilinear""bilinear""bilinear""bilinear" liefert qualitativ bessere Ergebnisse,
ist allerdings auch langsamer als 'nearest_neighbor'"nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor".
Die Winkel und Radien sind inklusive, die erste Zeile des
Eingabebildes wird also auf einen Kreis im Abstand
RadiusStartRadiusStartRadiusStartRadiusStartradiusStart vom angegebenen Mittelpunkt abgebildet, die
letzte Zeile auf einen Kreis im Abstand RadiusEndRadiusEndRadiusEndRadiusEndradiusEnd.
polar_trans_image_invpolar_trans_image_invPolarTransImageInvPolarTransImageInvPolarTransImageInv ist die exakte Umkehrfunktion zu
polar_trans_image_extpolar_trans_image_extPolarTransImageExtPolarTransImageExtPolarTransImageExt.
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 XYTransImageXYTransImageXYTransImageXYTransImageXYTransImage das Bild
'Image'"Image""Image""Image""Image" eingeschränkt auf den Kreis um
(RowRowRowRowrow, ColumnColumnColumnColumncolumn) mit Radius
'Radius'"Radius""Radius""Radius""Radius" zurück.
polar_trans_image_invpolar_trans_image_invPolarTransImageInvPolarTransImageInvPolarTransImageInv 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'"byte""byte""byte""byte", 'int2'"int2""int2""int2""int2" oder 'uint2'"uint2""uint2""uint2""uint2" kann
mittels des Systemparameters 'int_zooming'"int_zooming""int_zooming""int_zooming""int_zooming" (siehe
set_systemset_systemSetSystemSetSystemSetSystem) zwischen schneller Berechnung in Festkommaarithmetik
('int_zooming'"int_zooming""int_zooming""int_zooming""int_zooming" = 'true'"true""true""true""true") und hochgenauer Berechung in
Fließkommaarithmetik ('int_zooming'"int_zooming""int_zooming""int_zooming""int_zooming" = 'false'"false""false""false""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.
Weitere Informationen
Ein Überblick zu den verschiedenen in HALCON verwendeten 2D
Koordinatensystemen ist in der Einleitung zum Kapitel
Transformationen / 2D-Transformationen gegeben.
Ausführungsinformationen
- Unterstützt OpenCL Compute Devices.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf Tupelebene.
- Automatisch parallelisiert auf Kanalebene.
- Automatisch parallelisiert auf interner Datenebene.
Parameter
PolarImagePolarImagePolarImagePolarImagepolarImage (input_object) (multichannel-)image(-array) → objectHImageHImageHobject (byte* / int2* / uint2* / real*) *erlaubt für Compute Devices
Eingabebild.
XYTransImageXYTransImageXYTransImageXYTransImageXYTransImage (output_object) (multichannel-)image(-array) → objectHImageHImageHobject * (byte / int2 / uint2 / real)
Ergebnisbild.
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
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
AngleStartAngleStartAngleStartAngleStartangleStart (input_control) angle.rad → HTupleHTupleHtuple (real) (double) (double) (double)
Winkel, der die erste Spalte des Eingabebildes
definiert.
Defaultwert: 0.0
Wertevorschläge: 0.0, 0.78539816, 1.57079632, 3.141592654, 6.2831853
AngleEndAngleEndAngleEndAngleEndangleEnd (input_control) angle.rad → HTupleHTupleHtuple (real) (double) (double) (double)
Winkel, der die letzte Spalte des
Eingabebildes definiert.
Defaultwert: 6.2831853
Wertevorschläge: 0.0, 0.78539816, 1.57079632, 3.141592654, 6.2831853
RadiusStartRadiusStartRadiusStartRadiusStartradiusStart (input_control) number → HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Kreisradius, der die erste Zeile des
Eingabebildes definiert.
Defaultwert: 0
Wertevorschläge: 0, 16, 32, 64, 100, 128, 256, 512
Typischer Wertebereich: 0
≤
RadiusStart
RadiusStart
RadiusStart
RadiusStart
radiusStart
RadiusEndRadiusEndRadiusEndRadiusEndradiusEnd (input_control) number → HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Kreisradius, der die letzte Zeile des
Eingabebildes definiert.
Defaultwert: 100
Wertevorschläge: 0, 16, 32, 64, 100, 128, 256, 512
Typischer Wertebereich: 0
≤
RadiusEnd
RadiusEnd
RadiusEnd
RadiusEnd
radiusEnd
WidthWidthWidthWidthwidth (input_control) extent.x → HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Breite des 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 Zielbildes.
Defaultwert: 512
Wertevorschläge: 240, 256, 480, 512, 600, 1024
Typischer Wertebereich: 0
≤
Height
Height
Height
Height
height
≤
32767
InterpolationInterpolationInterpolationInterpolationinterpolation (input_control) string → HTupleHTupleHtuple (string) (string) (HString) (char*)
Interpolationsverfahren für die Transformation.
Defaultwert:
'nearest_neighbor'
"nearest_neighbor"
"nearest_neighbor"
"nearest_neighbor"
"nearest_neighbor"
Werteliste: 'bilinear'"bilinear""bilinear""bilinear""bilinear", 'nearest_neighbor'"nearest_neighbor""nearest_neighbor""nearest_neighbor""nearest_neighbor"
Siehe auch
polar_trans_image_extpolar_trans_image_extPolarTransImageExtPolarTransImageExtPolarTransImageExt,
polar_trans_regionpolar_trans_regionPolarTransRegionPolarTransRegionPolarTransRegion,
polar_trans_region_invpolar_trans_region_invPolarTransRegionInvPolarTransRegionInvPolarTransRegionInv,
polar_trans_contour_xldpolar_trans_contour_xldPolarTransContourXldPolarTransContourXldPolarTransContourXld,
polar_trans_contour_xld_invpolar_trans_contour_xld_invPolarTransContourXldInvPolarTransContourXldInvPolarTransContourXldInv
Modul
Foundation