| Operatoren |
median_image — Medianfilterung mit verschiedenen Masken.
median_image(Image : ImageMedian : MaskType, Radius, Margin : )
median_image führt eine Medianfilterung des Eingabebildes Image mit einer quadratischen oder kreisförmigen Maske durch und liefert das gefilterte Bild in ImageMedian zurück. Die Form der Maske kann mit MaskType gewählt werden. Der Radius der Maske wird mit Radius bestimmt.
Konzeptuell sortiert der Medianfilter alle Grauwerte innerhalb der Maske aufsteigend und wählt dann den Median der Grauwerte aus. Der Median ist der „mittlere“ der sortierten Grauwerte, d.h. der Grauwert mit dem Rang (Position) (A - 1) / 2 + 1 der sortierten Grauwerte, wobei A die Fläche der durch MaskType und Radius selektierten Filtermaske ist. Hierbei entspricht der Rang 1 dem kleinsten Grauwert und der Rang A dem größten Grauwert innerhalb der Maske (siehe auch rank_image).
median_image kann unter anderem zur Glättung von Bildern, zum Unterdrücken unterwünschter Objekte (z.B. Punkte und Linienstrukturen), die kleiner als die Maske sind, und somit zur Schätzung der Hintergrundbeleuchtung für eine Shading-Korrektur oder als Vorverarbeitung für die dynamische Schwellwertoperation (siehe dyn_threshold) verwendet werden.
Bei der Filterung kann über Margin zwischen verschiedenen Randbehandlungen 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.
median_image kann bei Verwendung einer quadratischen 3x3 oder 5x5 Filtermaske und der Randbehandlung 'mirrored' auf OpenCL Geräten ausgeführt werden.
median_image verwendet einen Algorithmus mit einer Laufzeit pro Pixel, die von der Maskenhöhe 2 * Radius + 1 abhängt. Daher ist median_image für quadratische Masken mit einer großen Maskenhöhe langsamer als median_rect. Die genaue Maskenhöhe, ab der median_rect schneller ist, ist abhängig von der Rechnerarchitektur (Prozessortyp, Verfügbarkeit von SIMD-Befehlen wie SSE2 oder MMX, Cachegröße und -durchsatz, Speicherdurchsatz). Typischerweise ist das für eine Maskenhöhe > 15 der Fall, kann aber z.B. bei nicht vorhandenen SIMD-Befehlen und langsamem Speicher auch erst für größere Maskenhöhen zutreffen.
Weiterhin ist zu beachten, dass median_rect aufgrund der rekursiven Implementierung die Filterantwort intern auf dem kleinsten umschließenden Rechteck der Region des Bildes berechnet. Falls die Region nur einen sehr kleinen Teil des umschließenden Rechtecks abdeckt, kann es daher vorkommen, dass median_image auch für größere Maskenhöhen schneller als median_rect ist.
Zu filterndes Bild.
Gefiltertes Bild.
Art der Filtermaske.
Defaultwert: 'circle'
Werteliste: 'circle', 'square'
Werteliste (für Compute Devices): 'square'
Radius der Filtermaske.
Defaultwert: 1
Werteliste (für Compute Devices): 1, 2
Wertevorschläge: 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 15, 19, 25, 31, 39, 47, 59
Typischer Wertebereich: 1 ≤ Radius ≤ 4095
Minimale Schrittweite: 1
Empfohlene Schrittweite: 2
Randbehandlung.
Defaultwert: 'mirrored'
Werteliste (für Compute Devices): 'mirrored'
Wertevorschläge: 'mirrored', 'cyclic', 'continued', 0, 30, 60, 90, 120, 150, 180, 210, 240, 255
read_image (Image, 'fabrik') median_image (Image, Median, 'circle', 3, 'continued') dev_display(Median)
Pro Bildpunkt: O(2 * Radius + 1).
Sind die Parameterwerte korrekt, dann liefert median_image den Wert 2 (H_MSG_TRUE). Das Verhalten bei leerer Eingabe (keine Eingabebilder vorhanden) lässt sich mittels set_system('no_object_result',<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
threshold, dyn_threshold, regiongrowing
median_rect, rank_image, rank_rect
gray_erosion_rect, gray_dilation_rect, gray_erosion_shape, gray_dilation_shape, gray_erosion, gray_dilation
T.S. Huang, G.J. Yang, G.Y. Tang; „A Fast Two-Dimensional Median
Filtering Algorithm“; IEEE Transactions on Acoustics, Speech, and
Signal Processing, vol. 27, no. 1, pp. 13-18, 1979.
R. Haralick, L. Shapiro; „Computer and Robot Vision“;
Addison-Wesley, 1992, pp. 318-320.
Foundation
| Operatoren |