gauss_filtergauss_filterGaussFilterGaussFiltergauss_filter (Operator)

Name

gauss_filtergauss_filterGaussFilterGaussFiltergauss_filter — Glättung mit diskreten Gaußfunktionen.

Signatur

gauss_filter(Image : ImageGauss : Size : )

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

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

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

HImage HImage::GaussFilter(Hlong Size) const

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

HImage HImage.GaussFilter(int size)

def gauss_filter(image: HObject, size: int) -> HObject

Beschreibung

gauss_filtergauss_filterGaussFilterGaussFilterGaussFiltergauss_filter glättet Bilder mittels der diskreten Gaußfunktion, welche eine Annäherung der kontinuierlichen Gauß-Funktion ist, die durch die folgende Formel definiert wird,

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.600) 5 (1.075) 7 (1.550) 9 (2.025) 11 (2.550) Zur Randbehandlung werden die Grauwerte der Bilder an den Bildrändern gespiegelt. Im Gegenteil zu dem Operator gauss_imagegauss_imageGaussImageGaussImageGaussImagegauss_image, wächst den Wert des Sigma Parameters gradlinig mit der Filtergröße.

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

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

Das Konzept der Glättungsfilter ist in der Einleitung zum Kapitel Filter / Glättung beschrieben.

Achtung

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

Beachten Sie, dass Filteroperatoren eventuell unerwartete Resultate ausgeben, wenn ein Bild mit einer reduzierten Domäne als Input übergeben wird. Weitere Informationen können im Kapitel Filter gefunden werden.

Ausführungsinformationen

Parameter

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

Zu glättendes Bild.

ImageGaussImageGaussImageGaussImageGaussimageGaussimage_gauss (output_object)  (multichannel-)image(-array) objectHImageHObjectHImageHobject * (byte / int2 / uint2 / int4 / real)

Gefiltertes Bild.

SizeSizeSizeSizesizesize (input_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Gewünschte Filtergröße.

Defaultwert: 5

Werteliste: 3, 5, 7, 9, 11

Beispiel (HDevelop)

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

Beispiel (C)

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

Beispiel (HDevelop)

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

Beispiel (HDevelop)

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

Beispiel (HDevelop)

gauss_filter(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_filtergauss_filterGaussFilterGaussFilterGaussFiltergauss_filter 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>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

read_imageread_imageReadImageReadImageReadImageread_image, grab_imagegrab_imageGrabImageGrabImageGrabImagegrab_image

Nachfolger

regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowingregiongrowing, thresholdthresholdThresholdThresholdThresholdthreshold, sub_imagesub_imageSubImageSubImageSubImagesub_image, dyn_thresholddyn_thresholdDynThresholdDynThresholdDynThresholddyn_threshold, auto_thresholdauto_thresholdAutoThresholdAutoThresholdAutoThresholdauto_threshold

Alternativen

binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilterbinomial_filter, smooth_imagesmooth_imageSmoothImageSmoothImageSmoothImagesmooth_image, derivate_gaussderivate_gaussDerivateGaussDerivateGaussDerivateGaussderivate_gauss, isotropic_diffusionisotropic_diffusionIsotropicDiffusionIsotropicDiffusionIsotropicDiffusionisotropic_diffusion

Siehe auch

mean_imagemean_imageMeanImageMeanImageMeanImagemean_image, anisotropic_diffusionanisotropic_diffusionAnisotropicDiffusionAnisotropicDiffusionAnisotropicDiffusionanisotropic_diffusion, sigma_imagesigma_imageSigmaImageSigmaImageSigmaImagesigma_image, gen_lowpassgen_lowpassGenLowpassGenLowpassGenLowpassgen_lowpass

Modul

Foundation