Name
trimmed_meantrimmed_meanTrimmedMeantrimmed_meanTrimmedMeanTrimmedMean — Glättung mit einer beliebigen Rangmaske.
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
trimmed_meantrimmed_meanTrimmedMeantrimmed_meanTrimmedMeanTrimmedMean führt eine nichtlineare Glättung der
Grauwerte aller Eingabebilder (ImageImageImageImageImageimage) durch. Die
Verschiebungsmaske (MaskMaskMaskMaskMaskmask) wird in Form einer Region
übergeben. Berechnet wird der Mittelwert von NumberNumberNumberNumberNumbernumber
Grauwert, die in der Nähe des Medians liegen. Es kann bei der
Filterung zwischen verschiedenen Randbehandlungen
(MarginMarginMarginMarginMarginmargin) 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 angebene 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
NumberNumberNumberNumberNumbernumber Grauwerte aufsummiert und durch NumberNumberNumberNumberNumbernumber
dividiert. Die verbleibenden (F - NumberNumberNumberNumberNumbernumber)/2 Grauwerte
werden wiederum ignoriert.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf Tupelebene.
- Automatisch parallelisiert auf Kanalebene.
- Automatisch parallelisiert auf Domainebene.
Bild, dessen Region als Filtermaske dient.
Gefiltertes Ergebnisbild.
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
number
≤
401
Minimale Schrittweite: 1
Empfohlene Schrittweite: 2
MarginMarginMarginMarginMarginmargin (input_control) string → HTupleHTupleHTupleVARIANTHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double) (BSTR / Hlong / double) (char* / Hlong / double)
Randbehandlung.
Defaultwert:
'mirrored'
"mirrored"
"mirrored"
"mirrored"
"mirrored"
"mirrored"
Wertevorschläge: 'mirrored'"mirrored""mirrored""mirrored""mirrored""mirrored", 'cyclic'"cyclic""cyclic""cyclic""cyclic""cyclic", 'continued'"continued""continued""continued""continued""continued", 0, 30, 60, 90, 120, 150, 180, 210, 240, 255
read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
trimmed_mean(Image,Region,TrimmedMean,5,'mirrored')
dev_display(TrimmedMean)
read_image(&Image,"fabrik");
draw_region(&Region,WindowHandle);
trimmed_mean(Image,Region,&TrimmedMean,5,"mirrored");
disp_image(TrimmedMean,WindowHandle);
read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
trimmed_mean(Image,Region,TrimmedMean,5,'mirrored')
dev_display(TrimmedMean)
read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
trimmed_mean(Image,Region,TrimmedMean,5,'mirrored')
dev_display(TrimmedMean)
read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
trimmed_mean(Image,Region,TrimmedMean,5,'mirrored')
dev_display(TrimmedMean)
read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
trimmed_mean(Image,Region,TrimmedMean,5,'mirrored')
dev_display(TrimmedMean)
Sind die Parameterwerte korrekt, dann liefert
trimmed_meantrimmed_meanTrimmedMeantrimmed_meanTrimmedMeanTrimmedMean 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.
read_imageread_imageReadImageread_imageReadImageReadImage,
draw_regiondraw_regionDrawRegiondraw_regionDrawRegionDrawRegion,
gen_circlegen_circleGenCirclegen_circleGenCircleGenCircle,
gen_rectangle1gen_rectangle1GenRectangle1gen_rectangle1GenRectangle1GenRectangle1
thresholdthresholdThresholdthresholdThresholdThreshold,
dyn_thresholddyn_thresholdDynThresholddyn_thresholdDynThresholdDynThreshold,
regiongrowingregiongrowingRegiongrowingregiongrowingRegiongrowingRegiongrowing
sigma_imagesigma_imageSigmaImagesigma_imageSigmaImageSigmaImage,
median_weightedmedian_weightedMedianWeightedmedian_weightedMedianWeightedMedianWeighted,
median_imagemedian_imageMedianImagemedian_imageMedianImageMedianImage
gen_circlegen_circleGenCirclegen_circleGenCircleGenCircle,
gen_rectangle1gen_rectangle1GenRectangle1gen_rectangle1GenRectangle1GenRectangle1,
gray_erosion_rectgray_erosion_rectGrayErosionRectgray_erosion_rectGrayErosionRectGrayErosionRect,
gray_dilation_rectgray_dilation_rectGrayDilationRectgray_dilation_rectGrayDilationRectGrayDilationRect
R. Haralick, L. Shapiro; „Computer and Robot Vision“;
Addison-Wesley, 1992, Seite 320
Foundation