| Operatoren |
guided_filter — Geführte Filterung eines Bildes.
guided_filter(Image, ImageGuide : ImageGuided : Radius, Amplitude : )
guided_filter filtert das Eingabebild Image mit Hilfe des Führungsbildes ImageGuide und liefert das Ergebnis in ImageGuided zurück. Image und ImageGuide müssen die selbe Größe haben und vom selben Typ sein.
Der Radius bestimmt die Größe der Filtermaske. Größere Werte erhöhen den Einflussbereich des Filters und führen dazu, dass weniger Details erhalten bleiben. Der Wert von Radius hat keinen Einfluss auf die Laufzeit des Operators.
Amplitude wird verwendet, um zu entscheiden, was eine Kante und was eine homogene Fläche ist. Größere Werte von Amplitude führen dazu, dass stärkere Kanten geglättet werden. Als Daumenregel sollte Amplitude kleiner sein als der Kontrast der Kanten, die erhalten werden sollen. Es ist zu beachten, dass der Kontrast in uint2- oder real-Bildern deutlich vom Defaultwert von Amplitude abweichen kann und der Parameter daher gesondert eingestellt werden muss.
Sind Image und ImageGuide identisch, verhält sich guided_filter wie ein kantenerhaltender Glättungsfilter mit einer Filtermaske mit dem Radius Radius. Pixel an Kanten mit einem Kontrast, der deutlich über Amplitude liegt, werden erhalten, während Pixel in homogenen Bereichen geglättet werden. Daher ist guided_filter eine schnelle Alternative zu anisotropic_diffusion oder bilateral_filter.
| (1) | (2) | (3) |
Sind Image und ImageGuide verschieden, wird Image mit einer Filtermaske mit Radius Radius geglättet, außer in Bereichen, wo ImageGuide Kanten mit deutlich höherem Kontrast als Amplitude aufweist.
| (1) | (2) | (3) |
Ist ImageGuide konstant, verhält sich guided_filter äquivalent zu 2 aufeinanderfolgenden Aufrufen von mean_image mit Maskengröße 2*Radius+1.
| (1) | (2) | (3) |
Die folgenden Beispiele zeigen den Einfluss von Amplitude auf einem künstlichen Bild. In diesem Bild liegt das Rauschlevel bei 10 Grauwerten, die linke Kante hat einen Kontrast von 50 Grauwerten, die rechte Kante hat einen Kontrast von 100 Grauwerten. Die gelbe Linie zeigt das Grauwertprofile eines horizontalen Querschnitts.
guided_filter kann iterativ aufgerufen werden. In dem Fall wird das Ergebnis einer Iteration als Führungsbild der nächsten Iteration verwendet. Das kann nützlich sein, z.B. um kleine Strukturen aus dem Originalbild zu entfernen, auch wenn sie einen hohen Kontrast haben.
Im folgenden Beispiel wird der Rolling-Guided-Filter verwendet, um die Textur vom Originalbild zu trennen.
| (1) | (2) | (3) |
* Verwenden des Rolling-Guided-Filter
* (verwende ein konstantes Führungsbild für die erste Iteration).
gen_image_proto (Image, ImageStructure, 0)
for I := 1 to 4 by 1
guided_filter (Image, ImageStructure, ImageStructure, 1.5, 60)
endfor
* Extrahiere die Textur durch Abziehen der großen Strukturen vom Original.
sub_image (Image, ImageStructure, ImageTexture, 1, 128)
Da sich guided_filter mit konstantem ImageGuide ähnlich zu mean_image verhält, kann die erste Iteration durch einen Aufruf von mean_image (oder einem ähnlichen Glättungsfilter) ersetzt werden, was schneller ist.
Die Berechnung der gefilterten Grauwerte an der Position beruht auf folgender Formel:
Das Konzept der Glättungsfilter ist in der Einleitung zum Kapitel Filter / Glättung beschrieben.
Eingabebild.
Führungsbild.
Ausgabebild.
Radius der Filterung.
Defaultwert: 3
Wertevorschläge: 1, 2, 3, 5, 10
Restriktion: Radius > 0
Steuert den Einfluss der Kanten bei der Filterung.
Defaultwert: 20.0
Wertevorschläge: 3.0, 10.0, 20.0, 50.0, 100.0
Restriktion: Amplitude > 0
read_image (Image, 'mreut') * Edge-preserving smoothing guided_filter (Image, Image, ImageGuided, 5, 20) * Rolling filter (5 iterations) gen_image_proto (Image, ImageGuide, 0) for I := 1 to 5 by 1 guided_filter (Image, ImageGuide, ImageGuide, 5, 20) endfor
threshold, dyn_threshold, regiongrowing
bilateral_filter, anisotropic_diffusion, median_image
Kaiming He, Jian Sun, Xiaoou Tang: „Guided Image Filtering“; IEEE Transactions on Pattern Analysis and Machine Intelligence; PAMI-35, no. 6; S. 1397-1409; 2013.
Foundation
| Operatoren |