trimmed_meantrimmed_meanTrimmedMeanTrimmedMean (Operator)

Name

trimmed_meantrimmed_meanTrimmedMeanTrimmedMean — Glättung mit einer beliebigen Rangmaske.

Signatur

trimmed_mean(Image, Mask : ImageTMean : Number, Margin : )

Herror trimmed_mean(const Hobject Image, const Hobject Mask, Hobject* ImageTMean, const Hlong Number, const char* Margin)

Herror T_trimmed_mean(const Hobject Image, const Hobject Mask, Hobject* ImageTMean, const Htuple Number, const Htuple Margin)

void TrimmedMean(const HObject& Image, const HObject& Mask, HObject* ImageTMean, const HTuple& Number, const HTuple& Margin)

HImage HImage::TrimmedMean(const HRegion& Mask, Hlong Number, const HTuple& Margin) const

HImage HImage::TrimmedMean(const HRegion& Mask, Hlong Number, const HString& Margin) const

HImage HImage::TrimmedMean(const HRegion& Mask, Hlong Number, const char* Margin) const

HImage HImage::TrimmedMean(const HRegion& Mask, Hlong Number, const wchar_t* Margin) const   (Nur Windows)

static void HOperatorSet.TrimmedMean(HObject image, HObject mask, out HObject imageTMean, HTuple number, HTuple margin)

HImage HImage.TrimmedMean(HRegion mask, int number, HTuple margin)

HImage HImage.TrimmedMean(HRegion mask, int number, string margin)

Beschreibung

trimmed_meantrimmed_meanTrimmedMeanTrimmedMeanTrimmedMean führt eine nichtlineare Glättung der Grauwerte aller Eingabebilder (ImageImageImageImageimage) durch. Die Verschiebungsmaske (MaskMaskMaskMaskmask) wird in Form einer Region übergeben. Berechnet wird der Mittelwert von NumberNumberNumberNumbernumber Grauwert, die in der Nähe des Medians liegen. Es kann bei der Filterung zwischen verschiedenen Randbehandlungen (MarginMarginMarginMarginmargin) gewählt werden: Grauwert Bildpunkte außerhalb der Bildränder werden als konstant (mit dem angegebenen Grauwert) angenommen. 'continued' Fortsetzung der Randpunkte. 'cyclic' zyklische Fortsetzung der Bildränder. 'mirrored' Spiegelung der Bildpunkte an den Bildrändern. Die angegebene Maske (= Region des Maskenbildes) wird so über die zu filternden Bilder geschoben, dass der Schwerpunkt der Maske alle Bildpunkte einmal berührt. Für jeden solchen Bildpunkt werden alle Nachbarpunkte, die von der Maske überdeckt werden, bzgl. ihrer Grauwerte aufsteigend sortiert. Jede solche sortierte Sequenz von Grauwerten enthält somit genau so viele Grauwerte, wie die Maske Bildpunkte hat. Sei F die Fläche der Maske, dann wird aus diesen Sequenzen der Mittelwert folgendermaßen berechnet: Die ersten (F - Number)/2 Grauwerte werden ignoriert. Dann werden die folgenden NumberNumberNumberNumbernumber Grauwerte aufsummiert und durch NumberNumberNumberNumbernumber dividiert. Die verbleibenden (F - NumberNumberNumberNumbernumber)/2 Grauwerte werden wiederum ignoriert.

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

Zu filterndes Bild.

MaskMaskMaskMaskmask (input_object)  region objectHRegionHRegionHobject

Bild, dessen Region als Filtermaske dient.

ImageTMeanImageTMeanImageTMeanImageTMeanimageTMean (output_object)  (multichannel-)image(-array) objectHImageHImageHobject * (byte / int2 / uint2 / int4 / real)

Gefiltertes Ergebnisbild.

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

Anzahl der Punkte über die gemittelt wird. Typischer Wert: Fläche(Mask) / 2.

Defaultwert: 5

Wertevorschläge: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31

Typischer Wertebereich: 1 ≤ Number Number Number Number number ≤ 401

Minimale Schrittweite: 1

Empfohlene Schrittweite: 2

MarginMarginMarginMarginmargin (input_control)  string HTupleHTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)

Randbehandlung.

Defaultwert: 'mirrored' "mirrored" "mirrored" "mirrored" "mirrored"

Wertevorschläge: 'mirrored'"mirrored""mirrored""mirrored""mirrored", 'cyclic'"cyclic""cyclic""cyclic""cyclic", 'continued'"continued""continued""continued""continued", 0, 30, 60, 90, 120, 150, 180, 210, 240, 255

Beispiel (HDevelop)

read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
trimmed_mean(Image,Region,TrimmedMean,5,'mirrored')
dev_display(TrimmedMean)

Beispiel (C)

read_image(&Image,"fabrik");
draw_region(&Region,WindowHandle);
trimmed_mean(Image,Region,&TrimmedMean,5,"mirrored");
disp_image(TrimmedMean,WindowHandle);

Beispiel (HDevelop)

read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
trimmed_mean(Image,Region,TrimmedMean,5,'mirrored')
dev_display(TrimmedMean)

Beispiel (HDevelop)

read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
trimmed_mean(Image,Region,TrimmedMean,5,'mirrored')
dev_display(TrimmedMean)

Beispiel (HDevelop)

read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
trimmed_mean(Image,Region,TrimmedMean,5,'mirrored')
dev_display(TrimmedMean)

Ergebnis

Sind die Parameterwerte korrekt, dann liefert trimmed_meantrimmed_meanTrimmedMeanTrimmedMeanTrimmedMean 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, draw_regiondraw_regionDrawRegionDrawRegionDrawRegion, gen_circlegen_circleGenCircleGenCircleGenCircle, gen_rectangle1gen_rectangle1GenRectangle1GenRectangle1GenRectangle1

Nachfolger

thresholdthresholdThresholdThresholdThreshold, dyn_thresholddyn_thresholdDynThresholdDynThresholdDynThreshold, regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowing

Alternativen

sigma_imagesigma_imageSigmaImageSigmaImageSigmaImage, median_weightedmedian_weightedMedianWeightedMedianWeightedMedianWeighted, median_imagemedian_imageMedianImageMedianImageMedianImage

Siehe auch

gen_circlegen_circleGenCircleGenCircleGenCircle, gen_rectangle1gen_rectangle1GenRectangle1GenRectangle1GenRectangle1, gray_erosion_rectgray_erosion_rectGrayErosionRectGrayErosionRectGrayErosionRect, gray_dilation_rectgray_dilation_rectGrayDilationRectGrayDilationRectGrayDilationRect

Literatur

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

Modul

Foundation