polar_trans_image_invpolar_trans_image_invPolarTransImageInvPolarTransImageInvpolar_trans_image_inv (Operator)

Name

polar_trans_image_invpolar_trans_image_invPolarTransImageInvPolarTransImageInvpolar_trans_image_inv — Rücktransformieren eines Polarkoordinatenbildes

Signatur

polar_trans_image_inv(PolarImage : XYTransImage : Row, Column, AngleStart, AngleEnd, RadiusStart, RadiusEnd, Width, Height, Interpolation : )

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)

def polar_trans_image_inv(polar_image: HObject, row: Union[int, float], column: Union[int, float], angle_start: float, angle_end: float, radius_start: Union[int, float], radius_end: Union[int, float], width: int, height: int, interpolation: str) -> HObject

Beschreibung

polar_trans_image_invpolar_trans_image_invPolarTransImageInvPolarTransImageInvpolar_trans_image_inv transformiert die Polarkoordinatendarstellung eines Bildes, gespeichert in PolarImagePolarImagePolarImagepolarImagepolar_image, zurück auf einen Kreisring in kartesischen Koordinaten, der durch die Radien RadiusStartRadiusStartRadiusStartradiusStartradius_start und RadiusEndRadiusEndRadiusEndradiusEndradius_end sowie durch die Winkel AngleStartAngleStartAngleStartangleStartangle_start und AngleEndAngleEndAngleEndangleEndangle_end 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 RadiusStartRadiusStartRadiusStartradiusStartradius_start vom angegebenen Mittelpunkt abgebildet, die letzte Zeile auf einen Kreis im Abstand RadiusEndRadiusEndRadiusEndradiusEndradius_end.

polar_trans_image_invpolar_trans_image_invPolarTransImageInvPolarTransImageInvpolar_trans_image_inv ist die exakte Umkehrfunktion zu polar_trans_image_extpolar_trans_image_extPolarTransImageExtPolarTransImageExtpolar_trans_image_ext.

Die Aufrufsequenz:
polar_trans_image_ext(Image, PolarImage, Row, Column, rad(360), 0, 0, Radius, Width, Height, Interpolation)polar_trans_image_ext(Image, PolarImage, Row, Column, rad(360), 0, 0, Radius, Width, Height, Interpolation)PolarTransImageExt(Image, PolarImage, Row, Column, rad(360), 0, 0, Radius, Width, Height, Interpolation)PolarTransImageExt(Image, PolarImage, Row, Column, rad(360), 0, 0, Radius, Width, Height, Interpolation)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)polar_trans_image_inv(PolarImage, XYTransImage, Row, Column, rad(360), 0, 0, Radius, Width, Height, Interpolation)PolarTransImageInv(PolarImage, XYTransImage, Row, Column, rad(360), 0, 0, Radius, Width, Height, Interpolation)PolarTransImageInv(PolarImage, XYTransImage, 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 XYTransImageXYTransImageXYTransImageXYTransImagexytrans_image das Bild ImageImageImageimageimage eingeschränkt auf den Kreis um (RowRowRowrowrow, ColumnColumnColumncolumncolumn) mit Radius Radius zurück.

polar_trans_image_invpolar_trans_image_invPolarTransImageInvPolarTransImageInvpolar_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'"int_zooming""int_zooming""int_zooming""int_zooming" (siehe set_systemset_systemSetSystemSetSystemset_system) zwischen schneller Berechnung in Festkommaarithmetik ('int_zooming'"int_zooming""int_zooming""int_zooming""int_zooming" = 'true'"true""true""true""true") und hochgenauer Berechnung 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

Parameter

PolarImagePolarImagePolarImagepolarImagepolar_image (input_object)  (multichannel-)image(-array) objectHImageHObjectHObjectHobject (byte* / int2* / uint2* / real*) *erlaubt für Compute Devices

Eingabebild.

XYTransImageXYTransImageXYTransImageXYTransImagexytrans_image (output_object)  (multichannel-)image(-array) objectHImageHObjectHObjectHobject * (byte / int2 / uint2 / real)

Ergebnisbild.

RowRowRowrowrow (input_control)  number HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Zeilenkoordinate des Kreismittelpunktes.

Default: 256

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

Wertebereich: 0 ≤ Row Row Row row row ≤ 32767

ColumnColumnColumncolumncolumn (input_control)  number HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Spaltenkoordinate des Kreismittelpunktes.

Default: 256

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

Wertebereich: 0 ≤ Column Column Column column column ≤ 32767

AngleStartAngleStartAngleStartangleStartangle_start (input_control)  angle.rad HTuplefloatHTupleHtuple (real) (double) (double) (double)

Winkel, der die erste Spalte des Eingabebildes definiert.

Default: 0.0

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

AngleEndAngleEndAngleEndangleEndangle_end (input_control)  angle.rad HTuplefloatHTupleHtuple (real) (double) (double) (double)

Winkel, der die letzte Spalte des Eingabebildes definiert.

Default: 6.2831853

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

RadiusStartRadiusStartRadiusStartradiusStartradius_start (input_control)  number HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Kreisradius, der die erste Zeile des Eingabebildes definiert.

Default: 0

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

Wertebereich: 0 ≤ RadiusStart RadiusStart RadiusStart radiusStart radius_start

RadiusEndRadiusEndRadiusEndradiusEndradius_end (input_control)  number HTupleUnion[int, float]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Kreisradius, der die letzte Zeile des Eingabebildes definiert.

Default: 100

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

Wertebereich: 0 ≤ RadiusEnd RadiusEnd RadiusEnd radiusEnd radius_end

WidthWidthWidthwidthwidth (input_control)  extent.x HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Breite des Zielbildes.

Default: 512

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

Wertebereich: 0 ≤ Width Width Width width width ≤ 32767

HeightHeightHeightheightheight (input_control)  extent.y HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Höhe des Zielbildes.

Default: 512

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

Wertebereich: 0 ≤ Height Height Height height height ≤ 32767

InterpolationInterpolationInterpolationinterpolationinterpolation (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Interpolationsverfahren für die Transformation.

Default: '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_extPolarTransImageExtPolarTransImageExtpolar_trans_image_ext, polar_trans_regionpolar_trans_regionPolarTransRegionPolarTransRegionpolar_trans_region, polar_trans_region_invpolar_trans_region_invPolarTransRegionInvPolarTransRegionInvpolar_trans_region_inv, polar_trans_contour_xldpolar_trans_contour_xldPolarTransContourXldPolarTransContourXldpolar_trans_contour_xld, polar_trans_contour_xld_invpolar_trans_contour_xld_invPolarTransContourXldInvPolarTransContourXldInvpolar_trans_contour_xld_inv

Modul

Foundation