sigma_imagesigma_imageSigmaImageSigmaImage (Operator)

Name

sigma_imagesigma_imageSigmaImageSigmaImage — Nichtlineare Glättung mit dem Sigmafilter.

Signatur

sigma_image(Image : ImageSigma : MaskHeight, MaskWidth, Sigma : )

Herror sigma_image(const Hobject Image, Hobject* ImageSigma, const Hlong MaskHeight, const Hlong MaskWidth, const Hlong Sigma)

Herror T_sigma_image(const Hobject Image, Hobject* ImageSigma, const Htuple MaskHeight, const Htuple MaskWidth, const Htuple Sigma)

void SigmaImage(const HObject& Image, HObject* ImageSigma, const HTuple& MaskHeight, const HTuple& MaskWidth, const HTuple& Sigma)

HImage HImage::SigmaImage(Hlong MaskHeight, Hlong MaskWidth, Hlong Sigma) const

static void HOperatorSet.SigmaImage(HObject image, out HObject imageSigma, HTuple maskHeight, HTuple maskWidth, HTuple sigma)

HImage HImage.SigmaImage(int maskHeight, int maskWidth, int sigma)

Beschreibung

sigma_imagesigma_imageSigmaImageSigmaImageSigmaImage führt eine nichtlineare Glättung der Grauwerte aller Eingabebilder (ImageImageImageImageimage) durch. Alle Bildpunkte in einem rechteckigen Fenster (MaskHeight x MaskWidth) werden verwendet, um den neuen Grauwert des zentralen Bildpunktes in diesem Fenster zu bestimmen. Zunächst wird die Standardabweichung der Grauwerte aller Bildpunkte in diesem Fenster berechnet. Dann werden alle Bildpunkte des Fensters, deren Grauwert von dem des zentralen Bildpunktes um weniger als SigmaSigmaSigmaSigmasigma abweicht, verwendet, um den neuen Wert des zentralen Bildpunktes zu berechnen. Der Grauwert des zentralen Bildpunktes ergibt sich aus dem Mittelwert dieser ausgewählten Bildpunkte. Wenn kein Bildpunkt für die Mittelwertbestimmung der Grauwerte ausgewählt werden konnte, wird der Grauwert des zentralen Bildpunktes unverändert übernommen.

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

Achtung

Werden für MaskHeightMaskHeightMaskHeightMaskHeightmaskHeight oder MaskWidthMaskWidthMaskWidthMaskWidthmaskWidth gerade statt ungerade Werte übergeben, verwendet die Routine an ihrer Stelle die nächstgrößeren ungeraden Werte (damit ist der Schwerpunkt der Filtermaske immer eindeutig bestimmt).

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 / cyclic / int1 / int2 / uint2 / int4 / real)

Zu glättendes Bild.

ImageSigmaImageSigmaImageSigmaImageSigmaimageSigma (output_object)  (multichannel-)image(-array) objectHImageHImageHobject * (byte / cyclic / int1 / int2 / uint2 / int4 / real)

Geglättetes Bild.

MaskHeightMaskHeightMaskHeightMaskHeightmaskHeight (input_control)  extent.y HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Fenstergröße für Mittelung (Anzahl Zeilen).

Defaultwert: 5

Wertevorschläge: 3, 5, 7, 9, 11, 13, 15

Typischer Wertebereich: 3 ≤ MaskHeight MaskHeight MaskHeight MaskHeight maskHeight ≤ 101

Minimale Schrittweite: 2

Empfohlene Schrittweite: 2

Restriktion: odd(MaskHeight)

MaskWidthMaskWidthMaskWidthMaskWidthmaskWidth (input_control)  extent.x HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Fenstergröße für Mittelung (Anzahl Spalten).

Defaultwert: 5

Wertevorschläge: 3, 5, 7, 9, 11, 13, 15

Typischer Wertebereich: 3 ≤ MaskWidth MaskWidth MaskWidth MaskWidth maskWidth ≤ 101

Minimale Schrittweite: 2

Empfohlene Schrittweite: 2

Restriktion: odd(MaskWidth)

SigmaSigmaSigmaSigmasigma (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Maximale Differenz zum Mittelwert.

Defaultwert: 3

Wertevorschläge: 3, 5, 7, 9, 11, 20, 30, 50

Typischer Wertebereich: 0 ≤ Sigma Sigma Sigma Sigma sigma ≤ 255

Minimale Schrittweite: 1

Empfohlene Schrittweite: 2

Beispiel (HDevelop)

read_image(Image,'fabrik')
sigma_image(Image,ImageSigma,5,5,3)
dev_display(ImageSigma)

Beispiel (C)

read_image(&Image,"fabrik");
sigma_image(Image,&ImageSigma,5,5,3);
disp_image(ImageSigma,WindowHandle);

Beispiel (HDevelop)

read_image(Image,'fabrik')
sigma_image(Image,ImageSigma,5,5,3)
dev_display(ImageSigma)

Beispiel (HDevelop)

read_image(Image,'fabrik')
sigma_image(Image,ImageSigma,5,5,3)
dev_display(ImageSigma)

Beispiel (HDevelop)

read_image(Image,'fabrik')
sigma_image(Image,ImageSigma,5,5,3)
dev_display(ImageSigma)

Komplexität

Pro Bildpunkt: O(MaskHeight*MaskWidth).

Ergebnis

Sind die Parameterwerte korrekt, dann liefert sigma_imagesigma_imageSigmaImageSigmaImageSigmaImage 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

anisotropic_diffusionanisotropic_diffusionAnisotropicDiffusionAnisotropicDiffusionAnisotropicDiffusion, rank_imagerank_imageRankImageRankImageRankImage

Siehe auch

smooth_imagesmooth_imageSmoothImageSmoothImageSmoothImage, binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilter, gauss_filtergauss_filterGaussFilterGaussFilterGaussFilter, mean_imagemean_imageMeanImageMeanImageMeanImage

Literatur

R. Haralick, L. Shapiro; „Computer and Robot Vision“; Addison-Wesley, 1992, Seite 325

Modul

Foundation