KlassenKlassenKlassenKlassen | | | | Operatoren

median_separatemedian_separateMedianSeparatemedian_separateMedianSeparateMedianSeparate (Operator)

Name

median_separatemedian_separateMedianSeparatemedian_separateMedianSeparateMedianSeparate — Separierte Medianfilterung mit Rechteckmasken.

Signatur

median_separate(Image : ImageSMedian : MaskWidth, MaskHeight, Margin : )

Herror median_separate(const Hobject Image, Hobject* ImageSMedian, const Hlong MaskWidth, const Hlong MaskHeight, const char* Margin)

Herror T_median_separate(const Hobject Image, Hobject* ImageSMedian, const Htuple MaskWidth, const Htuple MaskHeight, const Htuple Margin)

Herror median_separate(Hobject Image, Hobject* ImageSMedian, const HTuple& MaskWidth, const HTuple& MaskHeight, const HTuple& Margin)

HImage HImage::MedianSeparate(const HTuple& MaskWidth, const HTuple& MaskHeight, const HTuple& Margin) const

HImageArray HImageArray::MedianSeparate(const HTuple& MaskWidth, const HTuple& MaskHeight, const HTuple& Margin) const

void MedianSeparate(const HObject& Image, HObject* ImageSMedian, const HTuple& MaskWidth, const HTuple& MaskHeight, const HTuple& Margin)

HImage HImage::MedianSeparate(Hlong MaskWidth, Hlong MaskHeight, const HTuple& Margin) const

HImage HImage::MedianSeparate(Hlong MaskWidth, Hlong MaskHeight, const HString& Margin) const

HImage HImage::MedianSeparate(Hlong MaskWidth, Hlong MaskHeight, const char* Margin) const

void HOperatorSetX.MedianSeparate(
[in] IHUntypedObjectX* Image, [out] IHUntypedObjectX*ImageSMedian, [in] VARIANT MaskWidth, [in] VARIANT MaskHeight, [in] VARIANT Margin)

IHImageX* HImageX.MedianSeparate(
[in] Hlong MaskWidth, [in] Hlong MaskHeight, [in] VARIANT Margin)

static void HOperatorSet.MedianSeparate(HObject image, out HObject imageSMedian, HTuple maskWidth, HTuple maskHeight, HTuple margin)

HImage HImage.MedianSeparate(int maskWidth, int maskHeight, HTuple margin)

HImage HImage.MedianSeparate(int maskWidth, int maskHeight, string margin)

Beschreibung

median_separatemedian_separateMedianSeparatemedian_separateMedianSeparateMedianSeparate führt eine abgewandelte Variante der Median-Filterung durch: Es werden zunächst zwei Hilfsbilder erzeugt. Das erste entsteht aus einer Medianfilterung mit einer horizontalen, ein Pixel hohen und MaskWidthMaskWidthMaskWidthMaskWidthMaskWidthmaskWidth breiten Maske und anschließender Filterung mit einer MaskHeightMaskHeightMaskHeightMaskHeightMaskHeightmaskHeight hohen Maske. Das zweite Hilfsbild entsteht durch Filterung mit den gleichen Masken, wobei aber die Reihenfolge der Anwendung umgekehrt wird. Zuerst wird die vertikale, dann die horizontale Maske angewendet. Das Ausgabebild ergibt sich durch pixelweise Mittelung der beiden Hilfsbilder.

median_separatemedian_separateMedianSeparatemedian_separateMedianSeparateMedianSeparate ist deutlich schneller als der normale median_imagemedian_imageMedianImagemedian_imageMedianImageMedianImage, da beide Masken ein Pixel breit sind und somit eine sehr effiziente Verarbeitung möglich ist. Die Laufzeit ist praktisch unabhängig von der Größe der Maske. median_separatemedian_separateMedianSeparatemedian_separateMedianSeparateMedianSeparate lässt sich beispielweise gut nach Texturfiltern einsetzen, da dort große Masken benötigt werden.

Zur Verbesserung der Glättung kann der Filter auch mehrfach hintereinander angewandt werden.

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.

Parallelisierung

Parameter

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

Zu filterndes Bild.

ImageSMedianImageSMedianImageSMedianImageSMedianImageSMedianimageSMedian (output_object)  (multichannel-)image(-array) objectHImageHImageHImageHImageXHobject * (byte / int2 / uint2 / int4 / real)

Mediangefiltertes Bild.

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

Breite der Rangmaske.

Defaultwert: 25

Wertevorschläge: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 27, 43, 51, 67, 91, 121, 151

Typischer Wertebereich: 1 ≤ MaskWidth MaskWidth MaskWidth MaskWidth MaskWidth maskWidth ≤ 401

Minimale Schrittweite: 2

Empfohlene Schrittweite: 2

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

Höhe der Rangmaske.

Defaultwert: 25

Wertevorschläge: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 27, 43, 51, 67, 91, 121, 151

Typischer Wertebereich: 1 ≤ MaskHeight MaskHeight MaskHeight MaskHeight MaskHeight maskHeight ≤ 401

Minimale Schrittweite: 2

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

Beispiel (HDevelop)

read_image(Image,'fabrik')
median_separate(Image,MedianSeparate,5,5,3)
dev_display(MedianSeparate)

Beispiel (C)

read_image(&Image,"fabrik");
median_separate(Image,&MedianSeparate,5,5,3);
disp_image(MedianSeparate,WindowHandle);

Beispiel (HDevelop)

read_image(Image,'fabrik')
median_separate(Image,MedianSeparate,5,5,3)
dev_display(MedianSeparate)

Beispiel (HDevelop)

read_image(Image,'fabrik')
median_separate(Image,MedianSeparate,5,5,3)
dev_display(MedianSeparate)

Beispiel (HDevelop)

read_image(Image,'fabrik')
median_separate(Image,MedianSeparate,5,5,3)
dev_display(MedianSeparate)

Beispiel (HDevelop)

read_image(Image,'fabrik')
median_separate(Image,MedianSeparate,5,5,3)
dev_display(MedianSeparate)

Komplexität

Pro Bildpunkt: O(40).

Vorgänger

texture_lawstexture_lawsTextureLawstexture_lawsTextureLawsTextureLaws, sobel_ampsobel_ampSobelAmpsobel_ampSobelAmpSobelAmp, deviation_imagedeviation_imageDeviationImagedeviation_imageDeviationImageDeviationImage

Nachfolger

learn_ndim_normlearn_ndim_normLearnNdimNormlearn_ndim_normLearnNdimNormLearnNdimNorm, regiongrowingregiongrowingRegiongrowingregiongrowingRegiongrowingRegiongrowing, auto_thresholdauto_thresholdAutoThresholdauto_thresholdAutoThresholdAutoThreshold

Alternativen

median_imagemedian_imageMedianImagemedian_imageMedianImageMedianImage

Siehe auch

rank_imagerank_imageRankImagerank_imageRankImageRankImage

Literatur

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

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren