KlassenKlassenKlassenKlassen | | | | Operatoren

eliminate_min_maxeliminate_min_maxEliminateMinMaxeliminate_min_maxEliminateMinMaxEliminateMinMax (Operator)

Name

eliminate_min_maxeliminate_min_maxEliminateMinMaxeliminate_min_maxEliminateMinMaxEliminateMinMax — Ortsraumglättung zur Entfernung von Rauschspitzen.

Signatur

eliminate_min_max(Image : FilteredImage : MaskWidth, MaskHeight, Gap, Mode : )

Herror eliminate_min_max(const Hobject Image, Hobject* FilteredImage, const Hlong MaskWidth, const Hlong MaskHeight, double Gap, const Hlong Mode)

Herror T_eliminate_min_max(const Hobject Image, Hobject* FilteredImage, const Htuple MaskWidth, const Htuple MaskHeight, const Htuple Gap, const Htuple Mode)

Herror eliminate_min_max(Hobject Image, Hobject* FilteredImage, const HTuple& MaskWidth, const HTuple& MaskHeight, const HTuple& Gap, const HTuple& Mode)

HImage HImage::EliminateMinMax(const HTuple& MaskWidth, const HTuple& MaskHeight, const HTuple& Gap, const HTuple& Mode) const

HImageArray HImageArray::EliminateMinMax(const HTuple& MaskWidth, const HTuple& MaskHeight, const HTuple& Gap, const HTuple& Mode) const

void EliminateMinMax(const HObject& Image, HObject* FilteredImage, const HTuple& MaskWidth, const HTuple& MaskHeight, const HTuple& Gap, const HTuple& Mode)

HImage HImage::EliminateMinMax(Hlong MaskWidth, Hlong MaskHeight, double Gap, Hlong Mode) const

void HOperatorSetX.EliminateMinMax(
[in] IHUntypedObjectX* Image, [out] IHUntypedObjectX*FilteredImage, [in] VARIANT MaskWidth, [in] VARIANT MaskHeight, [in] VARIANT Gap, [in] VARIANT Mode)

IHImageX* HImageX.EliminateMinMax(
[in] Hlong MaskWidth, [in] Hlong MaskHeight, [in] double Gap, [in] Hlong Mode)

static void HOperatorSet.EliminateMinMax(HObject image, out HObject filteredImage, HTuple maskWidth, HTuple maskHeight, HTuple gap, HTuple mode)

HImage HImage.EliminateMinMax(int maskWidth, int maskHeight, double gap, int mode)

Beschreibung

eliminate_min_maxeliminate_min_maxEliminateMinMaxeliminate_min_maxEliminateMinMaxEliminateMinMax filtert Rauschspitzen aus einem verrauschten Bild. Hierfür wird das Bild punktweise im Ortsraum verarbeitet. Um Kanten und Linien nicht allzusehr zu glätten, werden nur diejenigen Bildpunkte ersetzt, die ein lokales Minimum bzw. Maximum darstellen. Der Gedanke hierbei ist, dass bei Kanten oder Linien noch mindestens ein weiterer Punkt innerhalb der lokalen Umgebung existiert, der ungefähr denselben Grauwert besitzt wie der betrachtete. Dadurch bleibt die Bedingung eines lokalen Minimums/Maximums unerfüllt, der Punkt wird nicht ersetzt und die Kante/Linie nicht geglättet. Um die Strenge der Ersetzungsbedingung beeinflussen zu können, kann mit GapGapGapGapGapgap angegeben werden, um wieviel kleiner bzw. größer das lokale Minimum/Maximum gegenüber den anderen Grauwerten mindestens sein muss. eliminate_min_maxeliminate_min_maxEliminateMinMaxeliminate_min_maxEliminateMinMaxEliminateMinMax arbeitet also nach folgendem Schema: Enthalte U(x,y) alle Grauwerte der NxM großen, rechteckigen lokalen Umgebung des Punktes (x,y), außer dem Grauwert des Punktes (x,y) selbst;

Mit welchem neuen Wert ein zu ersetzender Punkt belegt wird, ist durch ModeModeModeModeModemode zu steuern:

ModeModeModeModeModemode = 1  --> Ersetzung eines lokalen Maximums durch das
                        nächstkleinere lokale Maximum und
                        Ersetzung eines lokalen Minimums durch das
                        nächstgrößere lokale Minimum
ModeModeModeModeModemode = 2  --> Ersetzung durch das (ungewichtete) arithmetische
                        Mittel aller Punkte innerhalb der lokalen Umgebung
                        (inkl. des betrachteten Punktes)
ModeModeModeModeModemode = 3  --> Ersetzung durch den Median-Wert aller Punkte
                        innerhalb der lokalen Umgebung
                        (inkl. des betrachteten Punktes)
                        (auch bei allen anderen Werten von
                        Mode außer 1,2)
Die Breite und Höhe der (rechteckigen) lokalen Punktumgebung wird durch MaskWidthMaskWidthMaskWidthMaskWidthMaskWidthmaskWidth und MaskHeightMaskHeightMaskHeightMaskHeightMaskHeightmaskHeight festgelegt. Bemerkung zur Randbehandlung: Punkte jenseits des Bildrands werden nicht in die Betrachtung einbezogen. Sei z.B. eine 3x3-Maske gegeben, so reduziert sich die lokale Umgebung des Punktes (0,0) auf die Werte von (1,0),(0,1) und (1,1).

Achtung

Der Filter ist nur für Bilder vom Typ 'byte' implementiert. Werden für MaskWidthMaskWidthMaskWidthMaskWidthMaskWidthmaskWidth und MaskHeightMaskHeightMaskHeightMaskHeightMaskHeightmaskHeight gerade statt ungerader Werte übergeben, verwendet die Routine an ihrer Stelle die nächstgrößeren ungeraden Werte (damit ist der Schwerpunkt der Filtermaske immer eindeutig bestimmt). Die Filtermaskenbreite bzw. -höhe darf die Bildbreite bzw. -höhe nicht überschreiten.

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.

Parallelisierung

Parameter

ImageImageImageImageImageimage (input_object)  (multichannel-)image(-array) objectHImageHImageHImageHImageXHobject (byte / uint2)

Bild, das gefiltert werden soll.

FilteredImageFilteredImageFilteredImageFilteredImageFilteredImagefilteredImage (output_object)  (multichannel-)image(-array) objectHImageHImageHImageHImageXHobject * (byte / uint2)

Geglättetes Bild.

MaskWidthMaskWidthMaskWidthMaskWidthMaskWidthmaskWidth (input_control)  extent.x HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Breite der rechteckigen Filtermaske.

Defaultwert: 3

Wertevorschläge: 3, 5, 7, 9

Typischer Wertebereich: 3 ≤ MaskWidth MaskWidth MaskWidth MaskWidth MaskWidth maskWidth ≤ width(Image)

Minimale Schrittweite: 2

Empfohlene Schrittweite: 2

Restriktion: odd(MaskWidth)

MaskHeightMaskHeightMaskHeightMaskHeightMaskHeightmaskHeight (input_control)  extent.y HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Höhe der rechteckigen Filtermaske.

Defaultwert: 3

Wertevorschläge: 3, 5, 7, 9

Typischer Wertebereich: 3 ≤ MaskHeight MaskHeight MaskHeight MaskHeight MaskHeight maskHeight ≤ width(Image)

Minimale Schrittweite: 2

Empfohlene Schrittweite: 2

Restriktion: odd(MaskWidth)

GapGapGapGapGapgap (input_control)  number HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Mindestabstand vom lokalen Minimum/Maximum zu allen anderen Grauwerten der lokalen Punktumgebung.

Defaultwert: 1.0

Wertevorschläge: 1.0, 2.0, 5.0, 10.0

ModeModeModeModeModemode (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Ersetzungsvorschrift für zu ersetzende Grauwerte (1=nächstes Minimum/Maximum, 2=Average, sonst Median).

Defaultwert: 3

Werteliste: 1, 2, 3

Ergebnis

Sind die Parameterwerte korrekt, dann liefert eliminate_min_maxeliminate_min_maxEliminateMinMaxeliminate_min_maxEliminateMinMaxEliminateMinMax den Wert 2 (H_MSG_TRUE). Bei einer leeren Eingabe wird mit einer entsprechenden Fehlermeldung abgebrochen.

Siehe auch

mean_spmean_spMeanSpmean_spMeanSpMeanSp, mean_imagemean_imageMeanImagemean_imageMeanImageMeanImage, median_imagemedian_imageMedianImagemedian_imageMedianImageMedianImage, median_weightedmedian_weightedMedianWeightedmedian_weightedMedianWeightedMedianWeighted, binomial_filterbinomial_filterBinomialFilterbinomial_filterBinomialFilterBinomialFilter, gauss_filtergauss_filterGaussFiltergauss_filterGaussFilterGaussFilter, smooth_imagesmooth_imageSmoothImagesmooth_imageSmoothImageSmoothImage

Literatur

M. Imme:„A Noise Peak Elimination Filter“; S. 204-211 in CVGIP Graphical Models and Image Processing, Vol. 53, No. 2, March 1991
M. Lückenhaus:„Grundlagen des Wiener-Filters und seine Anwendung in der Bildanalyse“; Diplomarbeit; Technische Universität München, Institut für Informatik; Lehrstuhl Prof. Radig; 1995.

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren