KlassenKlassenKlassenKlassen | | | | Operatoren

gauss_imagegauss_imageGaussImagegauss_imageGaussImageGaussImage (Operator)

Name

gauss_imagegauss_imageGaussImagegauss_imageGaussImageGaussImage — Glättung mit diskreten Gaußfunktionen.

Warnung

gauss_imagegauss_imageGaussImagegauss_imageGaussImageGaussImage ist veraltet und wird nur aus Gründen der Rückwärtskompatibilität zur Verfügung gestellt. Neue Applikationen zum Glätten von Bildern sollten stattdessen den Operator gauss_filtergauss_filterGaussFiltergauss_filterGaussFilterGaussFilter verwenden.

Signatur

gauss_image(Image : ImageGauss : Size : )

Herror gauss_image(const Hobject Image, Hobject* ImageGauss, const Hlong Size)

Herror T_gauss_image(const Hobject Image, Hobject* ImageGauss, const Htuple Size)

Herror gauss_image(Hobject Image, Hobject* ImageGauss, const HTuple& Size)

HImage HImage::GaussImage(const HTuple& Size) const

HImageArray HImageArray::GaussImage(const HTuple& Size) const

void GaussImage(const HObject& Image, HObject* ImageGauss, const HTuple& Size)

HImage HImage::GaussImage(Hlong Size) const

void HOperatorSetX.GaussImage(
[in] IHUntypedObjectX* Image, [out] IHUntypedObjectX*ImageGauss, [in] VARIANT Size)

IHImageX* HImageX.GaussImage([in] Hlong Size)

static void HOperatorSet.GaussImage(HObject image, out HObject imageGauss, HTuple size)

HImage HImage.GaussImage(int size)

Beschreibung

gauss_imagegauss_imageGaussImagegauss_imageGaussImageGaussImage glättet Bilder mittels der diskreten Gaußfunktion. Die glättende Wirkung erhöht sich dabei mit zunehmender Filtergröße. Es werden folgende Filtergrößen (SizeSizeSizeSizeSizesize) unterstützt (in Klammer steht der sigma-Wert der Gaußfunktion):

    3    (0.65)
    5    (0.87)
    7    (1.43)
    9    (1.88)
    11   (2.31)
Zur Randbehandlung werden die Grauwerte der Bilder an den Bildrändern gespiegelt.

Als Alternative zu gauss_imagegauss_imageGaussImagegauss_imageGaussImageGaussImage bietet sich binomial_filterbinomial_filterBinomialFilterbinomial_filterBinomialFilterBinomialFilter an. binomial_filterbinomial_filterBinomialFilterbinomial_filterBinomialFilterBinomialFilter ist deutlich effizienter als gauss_imagegauss_imageGaussImagegauss_imageGaussImageGaussImage. Es ist zu beachten, dass die Maskengröße in binomial_filterbinomial_filterBinomialFilterbinomial_filterBinomialFilterBinomialFilter nicht dieselbe Glättung wie bei gauss_imagegauss_imageGaussImagegauss_imageGaussImageGaussImage bewirkt. Korrespondierende Maskengrößen lassen sich über die jeweiligen sigma-Werte der Gaußfunktion bestimmen.

gauss_imagegauss_imageGaussImagegauss_imageGaussImageGaussImage kann auf OpenCL Geräten ausgeführt werden. Allerdings kann das Ergebnis von dem der skalaren Implementierung geringfügig abweichen.

Achtung

Damit gauss_imagegauss_imageGaussImagegauss_imageGaussImageGaussImage auf einem OpenCL-Gerät ausgeführt werden kann, muss ImageImageImageImageImageimage eine Breite und Höhe von mindestens 64 Pixeln aufweisen.

Parallelisierung

Parameter

ImageImageImageImageImageimage (input_object)  (multichannel-)image(-array) objectHImageHImageHImageHImageXHobject (byte* / int2* / uint2* / int4* / real*) *erlaubt für Compute Devices

Zu glättendes Bild.

ImageGaussImageGaussImageGaussImageGaussImageGaussimageGauss (output_object)  (multichannel-)image(-array) objectHImageHImageHImageHImageXHobject * (byte / int2 / uint2 / int4 / real)

Gefiltertes Bild.

SizeSizeSizeSizeSizesize (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Gewünschte Filtergröße.

Defaultwert: 5

Werteliste: 3, 5, 7, 9, 11

Beispiel (HDevelop)

gauss_image(Input,Gauss,7)
regiongrowing(Gauss,Segments,7,7,5,100)

Beispiel (C)

gauss_image(Input,&Gauss,7,);
regiongrowing(Gauss,&Segments,7,7,5,100,);

Beispiel (HDevelop)

gauss_image(Input,Gauss,7)
regiongrowing(Gauss,Segments,7,7,5,100)

Beispiel (HDevelop)

gauss_image(Input,Gauss,7)
regiongrowing(Gauss,Segments,7,7,5,100)

Beispiel (HDevelop)

gauss_image(Input,Gauss,7)
regiongrowing(Gauss,Segments,7,7,5,100)

Beispiel (HDevelop)

gauss_image(Input,Gauss,7)
regiongrowing(Gauss,Segments,7,7,5,100)

Komplexität

Pro Bildpunkt: O(Size * 2).

Ergebnis

Sind die Parameterwerte korrekt, dann liefert gauss_imagegauss_imageGaussImagegauss_imageGaussImageGaussImage den Wert 2 (H_MSG_TRUE). Das Verhalten bei leerer Eingabe (keine Eingabebilder vorhanden) lässt sich mittels set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren