KlassenKlassenKlassenKlassen | | | | Operatoren

sigma_imagesigma_imageSigmaImagesigma_imageSigmaImageSigmaImage (Operator)

Name

sigma_imagesigma_imageSigmaImagesigma_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)

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

HImage HImage::SigmaImage(const HTuple& MaskHeight, const HTuple& MaskWidth, const HTuple& Sigma) const

HImageArray HImageArray::SigmaImage(const HTuple& MaskHeight, const HTuple& MaskWidth, const HTuple& Sigma) const

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

void HOperatorSetX.SigmaImage(
[in] IHUntypedObjectX* Image, [out] IHUntypedObjectX*ImageSigma, [in] VARIANT MaskHeight, [in] VARIANT MaskWidth, [in] VARIANT Sigma)

IHImageX* HImageX.SigmaImage(
[in] Hlong MaskHeight, [in] Hlong MaskWidth, [in] Hlong Sigma)

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_imageSigmaImagesigma_imageSigmaImageSigmaImage 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.

Achtung

Werden für MaskHeightMaskHeightMaskHeightMaskHeightMaskHeightmaskHeight oder MaskWidthMaskWidthMaskWidthMaskWidthMaskWidthmaskWidth 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).

Parallelisierung

Parameter

ImageImageImageImageImageimage (input_object)  (multichannel-)image(-array) objectHImageHImageHImageHImageXHobject (byte / cyclic / int1 / int2 / uint2 / int4 / real)

Zu glättendes Bild.

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

Geglättetes Bild.

MaskHeightMaskHeightMaskHeightMaskHeightMaskHeightmaskHeight (input_control)  extent.y HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (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 maskHeight ≤ 101

Minimale Schrittweite: 2

Empfohlene Schrittweite: 2

Restriktion: odd(MaskHeight)

MaskWidthMaskWidthMaskWidthMaskWidthMaskWidthmaskWidth (input_control)  extent.x HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (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 maskWidth ≤ 101

Minimale Schrittweite: 2

Empfohlene Schrittweite: 2

Restriktion: odd(MaskWidth)

SigmaSigmaSigmaSigmaSigmasigma (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (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)

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_imageSigmaImagesigma_imageSigmaImageSigmaImage 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>)set_system("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_imageReadImageread_imageReadImageReadImage

Nachfolger

thresholdthresholdThresholdthresholdThresholdThreshold, dyn_thresholddyn_thresholdDynThresholddyn_thresholdDynThresholdDynThreshold, regiongrowingregiongrowingRegiongrowingregiongrowingRegiongrowingRegiongrowing

Alternativen

anisotropic_diffusionanisotropic_diffusionAnisotropicDiffusionanisotropic_diffusionAnisotropicDiffusionAnisotropicDiffusion, rank_imagerank_imageRankImagerank_imageRankImageRankImage

Siehe auch

smooth_imagesmooth_imageSmoothImagesmooth_imageSmoothImageSmoothImage, binomial_filterbinomial_filterBinomialFilterbinomial_filterBinomialFilterBinomialFilter, gauss_filtergauss_filterGaussFiltergauss_filterGaussFilterGaussFilter, mean_imagemean_imageMeanImagemean_imageMeanImageMeanImage

Literatur

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

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren