median_separatemedian_separateMedianSeparateMedianSeparate (Operator)

Name

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

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

HImage HImage::MedianSeparate(Hlong MaskWidth, Hlong MaskHeight, const wchar_t* Margin) const   (Nur Windows)

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_separateMedianSeparateMedianSeparateMedianSeparate 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 MaskWidthMaskWidthMaskWidthMaskWidthmaskWidth breiten Maske und anschließender Filterung mit einer vertikalen, MaskHeightMaskHeightMaskHeightMaskHeightmaskHeight hohen und ein Pixel breiten 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_separateMedianSeparateMedianSeparateMedianSeparate ist deutlich schneller als der normale median_imagemedian_imageMedianImageMedianImageMedianImage, 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_separateMedianSeparateMedianSeparateMedianSeparate 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.

Das Konzept der Glättungsfilter ist in der Einleitung zum Kapitel Filter / Glättung beschrieben.

Achtung

Aus Laufzeitgründen wird das Eingabebild ImageImageImageImageimage nicht auf NaNs überprüft. Die Verwendung eines Eingabebildes mit NaNs führt zum Absturz von HALCON.

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.

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

Mediangefiltertes Bild.

MaskWidthMaskWidthMaskWidthMaskWidthmaskWidth (input_control)  extent.x HTupleHTupleHtuple (integer) (int / long) (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 ≤ 401

Minimale Schrittweite: 2

Empfohlene Schrittweite: 2

MaskHeightMaskHeightMaskHeightMaskHeightmaskHeight (input_control)  extent.y HTupleHTupleHtuple (integer) (int / long) (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 ≤ 401

Minimale Schrittweite: 2

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

Komplexität

Pro Bildpunkt: O(40).

Vorgänger

texture_lawstexture_lawsTextureLawsTextureLawsTextureLaws, sobel_ampsobel_ampSobelAmpSobelAmpSobelAmp, deviation_imagedeviation_imageDeviationImageDeviationImageDeviationImage

Nachfolger

learn_ndim_normlearn_ndim_normLearnNdimNormLearnNdimNormLearnNdimNorm, regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowing, auto_thresholdauto_thresholdAutoThresholdAutoThresholdAutoThreshold

Alternativen

median_imagemedian_imageMedianImageMedianImageMedianImage

Siehe auch

rank_imagerank_imageRankImageRankImageRankImage

Literatur

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

Modul

Foundation