median_separate
— Separierte Medianfilterung mit Rechteckmasken.
median_separate(Image : ImageSMedian : MaskWidth, MaskHeight, Margin : )
median_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 MaskWidth
breiten Maske
und anschließender Filterung mit einer vertikalen, MaskHeight
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_separate
ist deutlich schneller als der normale
median_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_separate
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.
Aus Laufzeitgründen wird das Eingabebild Image
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.
Image
(input_object) (multichannel-)image(-array) →
object (byte / int2 / uint2 / int4 / real)
Zu filterndes Bild.
ImageSMedian
(output_object) (multichannel-)image(-array) →
object (byte / int2 / uint2 / int4 / real)
Mediangefiltertes Bild.
MaskWidth
(input_control) extent.x →
(integer)
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
≤
401
Minimale Schrittweite: 2
Empfohlene Schrittweite: 2
MaskHeight
(input_control) extent.y →
(integer)
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
≤
401
Minimale Schrittweite: 2
Empfohlene Schrittweite: 2
Margin
(input_control) string →
(string / integer / real)
Randbehandlung.
Defaultwert: 'mirrored'
Wertevorschläge: 'mirrored' , 'cyclic' , 'continued' , 0, 30, 60, 90, 120, 150, 180, 210, 240, 255
read_image(Image,'fabrik') median_separate(Image,MedianSeparate,5,5,3) dev_display(MedianSeparate)
Pro Bildpunkt: O(40).
texture_laws
,
sobel_amp
,
deviation_image
learn_ndim_norm
,
regiongrowing
,
auto_threshold
R. Haralick, L. Shapiro; „Computer and Robot Vision“; Addison-Wesley, 1992, Seite 319
Foundation