sigma_imagesigma_imageSigmaImageSigmaImagesigma_image (Operator)

Name

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

def sigma_image(image: HObject, mask_height: int, mask_width: int, sigma: int) -> HObject

Beschreibung

sigma_imagesigma_imageSigmaImageSigmaImageSigmaImagesigma_image führt eine nichtlineare Glättung der Grauwerte aller Eingabebilder (ImageImageImageImageimageimage) 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 SigmaSigmaSigmaSigmasigmasigma 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 MaskHeightMaskHeightMaskHeightMaskHeightmaskHeightmask_height oder MaskWidthMaskWidthMaskWidthMaskWidthmaskWidthmask_width 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

ImageImageImageImageimageimage (input_object)  (multichannel-)image(-array) objectHImageHObjectHImageHobject (byte / cyclic / int1 / int2 / uint2 / int4 / real)

Zu glättendes Bild.

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

Geglättetes Bild.

MaskHeightMaskHeightMaskHeightMaskHeightmaskHeightmask_height (input_control)  extent.y HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

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

Defaultwert: 5

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

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

Minimale Schrittweite: 2

Empfohlene Schrittweite: 2

Restriktion: odd(MaskHeight)

MaskWidthMaskWidthMaskWidthMaskWidthmaskWidthmask_width (input_control)  extent.x HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

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

Defaultwert: 5

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

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

Minimale Schrittweite: 2

Empfohlene Schrittweite: 2

Restriktion: odd(MaskWidth)

SigmaSigmaSigmaSigmasigmasigma (input_control)  integer HTupleintHTupleHtuple (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 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_imageSigmaImageSigmaImageSigmaImagesigma_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

anisotropic_diffusionanisotropic_diffusionAnisotropicDiffusionAnisotropicDiffusionAnisotropicDiffusionanisotropic_diffusion, rank_imagerank_imageRankImageRankImageRankImagerank_image

Siehe auch

smooth_imagesmooth_imageSmoothImageSmoothImageSmoothImagesmooth_image, binomial_filterbinomial_filterBinomialFilterBinomialFilterBinomialFilterbinomial_filter, gauss_filtergauss_filterGaussFilterGaussFilterGaussFiltergauss_filter, mean_imagemean_imageMeanImageMeanImageMeanImagemean_image

Literatur

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

Modul

Foundation