median_separatemedian_separateMedianSeparateMedianSeparatemedian_separate (Operator)

Name

median_separatemedian_separateMedianSeparateMedianSeparatemedian_separate — 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)

def median_separate(image: HObject, mask_width: int, mask_height: int, margin: Union[int, float, str]) -> HObject

Beschreibung

median_separatemedian_separateMedianSeparateMedianSeparateMedianSeparatemedian_separate 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 MaskWidthMaskWidthMaskWidthMaskWidthmaskWidthmask_width breiten Maske und anschließender Filterung mit einer vertikalen, MaskHeightMaskHeightMaskHeightMaskHeightmaskHeightmask_height 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 Mittlung der beiden Hilfsbilder.

median_separatemedian_separateMedianSeparateMedianSeparateMedianSeparatemedian_separate ist deutlich schneller als der normale median_imagemedian_imageMedianImageMedianImageMedianImagemedian_image, 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_separateMedianSeparateMedianSeparateMedianSeparatemedian_separate lässt sich beispielsweise 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 ImageImageImageImageimageimage 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

ImageImageImageImageimageimage (input_object)  (multichannel-)image(-array) objectHImageHObjectHImageHobject (byte / int2 / uint2 / int4 / real)

Zu filterndes Bild.

ImageSMedianImageSMedianImageSMedianImageSMedianimageSMedianimage_smedian (output_object)  (multichannel-)image(-array) objectHImageHObjectHImageHobject * (byte / int2 / uint2 / int4 / real)

Mediangefiltertes Bild.

MaskWidthMaskWidthMaskWidthMaskWidthmaskWidthmask_width (input_control)  extent.x HTupleintHTupleHtuple (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 mask_width ≤ 401

Minimale Schrittweite: 2

Empfohlene Schrittweite: 2

MaskHeightMaskHeightMaskHeightMaskHeightmaskHeightmask_height (input_control)  extent.y HTupleintHTupleHtuple (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 mask_height ≤ 401

Minimale Schrittweite: 2

Empfohlene Schrittweite: 2

MarginMarginMarginMarginmarginmargin (input_control)  string HTupleUnion[int, float, str]HTupleHtuple (string / integer / real) (string / int / long / double) (HString / 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)

Komplexität

Pro Bildpunkt: O(40).

Vorgänger

texture_lawstexture_lawsTextureLawsTextureLawsTextureLawstexture_laws, sobel_ampsobel_ampSobelAmpSobelAmpSobelAmpsobel_amp, deviation_imagedeviation_imageDeviationImageDeviationImageDeviationImagedeviation_image

Nachfolger

learn_ndim_normlearn_ndim_normLearnNdimNormLearnNdimNormLearnNdimNormlearn_ndim_norm, regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowingregiongrowing, auto_thresholdauto_thresholdAutoThresholdAutoThresholdAutoThresholdauto_threshold

Alternativen

median_imagemedian_imageMedianImageMedianImageMedianImagemedian_image

Siehe auch

rank_imagerank_imageRankImageRankImageRankImagerank_image

Literatur

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

Modul

Foundation