smooth_imagesmooth_imageSmoothImageSmoothImage (Operator)

Name

smooth_imagesmooth_imageSmoothImageSmoothImage — 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)

Beschreibung

smooth_imagesmooth_imageSmoothImageSmoothImageSmoothImage 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 FilterFilterFilterFilterfilter 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 AlphaAlphaAlphaAlphaalpha ab, beim Gaußfilter hingegen zu (AlphaAlphaAlphaAlphaalpha ist in diesem Fall die Standardabweichung der Gaußfunktion). Eine Abschätzung des Einzugsgebiets der Filter für konkrete Werte von AlphaAlphaAlphaAlphaalpha liefert die Routine info_smoothinfo_smoothInfoSmoothInfoSmoothInfoSmooth.

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 AlphaAlphaAlphaAlphaalpha: 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

ImageImageImageImageimage (input_object)  (multichannel-)image(-array) objectHImageHImageHobject (byte / uint2 / real)

Zu glättende Bilder.

ImageSmoothImageSmoothImageSmoothImageSmoothimageSmooth (output_object)  (multichannel-)image(-array) objectHImageHImageHobject * (byte / uint2 / real)

Geglättete Bilder.

FilterFilterFilterFilterfilter (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Gewünschter Filter.

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

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

AlphaAlphaAlphaAlphaalpha (input_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Filterparameter: kleine Werte bewirken starke Glättung (bei '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 ≤ 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_imageSmoothImageSmoothImageSmoothImage 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>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

read_imageread_imageReadImageReadImageReadImage

Nachfolger

thresholdthresholdThresholdThresholdThreshold, dyn_thresholddyn_thresholdDynThresholdDynThresholdDynThreshold, regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowing

Alternativen

binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilter, gauss_filtergauss_filterGaussFilterGaussFilterGaussFilter, mean_imagemean_imageMeanImageMeanImageMeanImage, derivate_gaussderivate_gaussDerivateGaussDerivateGaussDerivateGauss, isotropic_diffusionisotropic_diffusionIsotropicDiffusionIsotropicDiffusionIsotropicDiffusion

Siehe auch

info_smoothinfo_smoothInfoSmoothInfoSmoothInfoSmooth, median_imagemedian_imageMedianImageMedianImageMedianImage, sigma_imagesigma_imageSigmaImageSigmaImageSigmaImage, anisotropic_diffusionanisotropic_diffusionAnisotropicDiffusionAnisotropicDiffusionAnisotropicDiffusion

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