smooth_imagesmooth_imageSmoothImageSmoothImagesmooth_image (Operator)

Name

smooth_imagesmooth_imageSmoothImageSmoothImagesmooth_image — Glättung mit verschiedenen Filtern.

Signatur

smooth_image(Image : ImageSmooth : Filter, Alpha : )

Herror smooth_image(const Hobject Image, Hobject* ImageSmooth, const char* Filter, double Alpha)

Herror T_smooth_image(const Hobject Image, Hobject* ImageSmooth, const Htuple Filter, const Htuple Alpha)

void SmoothImage(const HObject& Image, HObject* ImageSmooth, const HTuple& Filter, const HTuple& Alpha)

HImage HImage::SmoothImage(const HString& Filter, double Alpha) const

HImage HImage::SmoothImage(const char* Filter, double Alpha) const

HImage HImage::SmoothImage(const wchar_t* Filter, double Alpha) const   (Nur Windows)

static void HOperatorSet.SmoothImage(HObject image, out HObject imageSmooth, HTuple filter, HTuple alpha)

HImage HImage.SmoothImage(string filter, double alpha)

def smooth_image(image: HObject, filter: str, alpha: float) -> HObject

Beschreibung

smooth_imagesmooth_imageSmoothImageSmoothImageSmoothImagesmooth_image dient zur Glättung von Graustufenbildern mittels rekursiver Filter (nach Deriche und Shen) bzw. mittels des konventionell implementierten Gaußfilters. Konkret lassen sich über den Parameter FilterFilterFilterFilterfilterfilter folgende vier Filter auswählen: 'deriche1', 'deriche2', 'shen' und 'gauss'. Die „Filterbreite“ (d.h. das Einzugsgebiet und damit die glättende Wirkung der Filter) ist frei wählbar. Sie nimmt bei den Deriche- und dem Shen-Filter mit wachsendem Filterparameter AlphaAlphaAlphaAlphaalphaalpha ab, beim Gaußfilter hingegen zu (AlphaAlphaAlphaAlphaalphaalpha ist in diesem Fall die Standardabweichung der Gaußfunktion). Eine Abschätzung des Einzugsgebiets der Filter für konkrete Werte von AlphaAlphaAlphaAlphaalphaalpha liefert die Routine info_smoothinfo_smoothInfoSmoothInfoSmoothInfoSmoothinfo_smooth.

Nicht-rekursive Filter, wie hier der Gaußfilter, werden häufig mittels Filtermasken realisiert. In diesem Fall erhöht sich die Laufzeit natürlich mit wachsender Filterbreite. Die Laufzeit der rekursiven Filter ist hingegen praktisch konstant. Lediglich die Randbehandlung (Spiegelung der Randpunkte) ist bei „breiteren“ Filter etwas aufwändiger. Das Einzugsgebiet der Deriche- bzw. des Shen-Filters ist also fast ohne Mehraufwand beliebig vergrößerbar. Der daraus resultierende Laufzeitvorteil gegenüber dem Gaußfilter nimmt naturgemäß mit wachsender „Filterbreite“ zu. Allerdings ist nur der Gaußfilter isotrop, alle anderen Filter sind anisotrop (wobei der 'deriche2'-Filter nur schwach richtungs-sensitiv ist). Eine vergleichbare glättende Wirkung der Filter erhält man bei folgender Wahl von AlphaAlphaAlphaAlphaalphaalpha: Alpha(deriche2) = Alpha(deriche1) / 2, Alpha(shen) = Alpha(deriche1) / 2, Alpha(gauss) = 1.77 / Alpha(deriche1).

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

Achtung

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 / uint2 / real)

Zu glättende Bilder.

ImageSmoothImageSmoothImageSmoothImageSmoothimageSmoothimage_smooth (output_object)  (multichannel-)image(-array) objectHImageHObjectHImageHobject * (byte / uint2 / real)

Geglättete Bilder.

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

Gewünschter Filter.

Defaultwert: 'deriche2' "deriche2" "deriche2" "deriche2" "deriche2" "deriche2"

Werteliste: 'deriche1'"deriche1""deriche1""deriche1""deriche1""deriche1", 'deriche2'"deriche2""deriche2""deriche2""deriche2""deriche2", 'gauss'"gauss""gauss""gauss""gauss""gauss", 'shen'"shen""shen""shen""shen""shen"

AlphaAlphaAlphaAlphaalphaalpha (input_control)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

Filterparameter: kleine Werte bewirken starke Glättung (bei 'gauss'"gauss""gauss""gauss""gauss""gauss" umgekehrt).

Defaultwert: 0.5

Wertevorschläge: 0.1, 0.2, 0.3, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 7.0, 10.0

Typischer Wertebereich: 0.01 ≤ Alpha Alpha Alpha Alpha alpha alpha ≤ 50.0

Minimale Schrittweite: 0.01

Empfohlene Schrittweite: 0.1

Restriktion: Alpha > 0

Beispiel (HDevelop)

info_smooth('deriche2',0.5,Size,Coeffs)
smooth_image(Input,Smooth,'deriche2',7)

Beispiel (C)

info_smooth('deriche2',0.5,Size,Coeffs);
smooth_image(Input,&Smooth,'deriche2',7);

Beispiel (HDevelop)

info_smooth('deriche2',0.5,Size,Coeffs)
smooth_image(Input,Smooth,'deriche2',7)

Beispiel (HDevelop)

info_smooth('deriche2',0.5,Size,Coeffs)
smooth_image(Input,Smooth,'deriche2',7)

Beispiel (HDevelop)

info_smooth('deriche2',0.5,Size,Coeffs)
smooth_image(Input,Smooth,'deriche2',7)

Ergebnis

Sind die Parameterwerte korrekt liefert smooth_imagesmooth_imageSmoothImageSmoothImageSmoothImagesmooth_image den Wert 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

Nachfolger

thresholdthresholdThresholdThresholdThresholdthreshold, dyn_thresholddyn_thresholdDynThresholdDynThresholdDynThresholddyn_threshold, regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowingregiongrowing

Alternativen

binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilterbinomial_filter, gauss_filtergauss_filterGaussFilterGaussFilterGaussFiltergauss_filter, mean_imagemean_imageMeanImageMeanImageMeanImagemean_image, derivate_gaussderivate_gaussDerivateGaussDerivateGaussDerivateGaussderivate_gauss, isotropic_diffusionisotropic_diffusionIsotropicDiffusionIsotropicDiffusionIsotropicDiffusionisotropic_diffusion

Siehe auch

info_smoothinfo_smoothInfoSmoothInfoSmoothInfoSmoothinfo_smooth, median_imagemedian_imageMedianImageMedianImageMedianImagemedian_image, sigma_imagesigma_imageSigmaImageSigmaImageSigmaImagesigma_image, anisotropic_diffusionanisotropic_diffusionAnisotropicDiffusionAnisotropicDiffusionAnisotropicDiffusionanisotropic_diffusion

Literatur

R.Deriche: „Fast Algorithms for Low-Level Vision“; IEEE Transactions on Pattern Analysis and Machine Intelligence; PAMI-12, no. 1; S. 78-87; 1990.

Modul

Foundation