Geführter Filter

aus Wikipedia, der freien Enzyklopädie

Ein Geführter Filter (englisch Guided Filter) ist ein in der Bildverarbeitung angewandter Filter. Er glättet, erhält jedoch Kanten.

Prinzip

Der geführte Filter verwendet ein Maskenbild zusätzlich zu einem Eingabebild, um das Eingabebild zu glätten. Das Maskenbild sollte dabei ähnliche Kantenverläufe aufweisen, wie das Eingabebild. Das Eingabebild kann gleichzeitig auch als Maske fungieren.

Das Ausgabebild wird wie folgt berechnet:[1]

Dabei ist:

  • – Das Maskenbild am Bildpunkt .
  • – Das Ausgabebild am Bildpunkt .
  • – Ein zu berechnender Faktor am Punkt , der mit dem Maskenbild multipliziert wird.
  • – Ein zu berechnender Faktor am Punkt , der auf die Werte des Eingabebildes addiert wird.

und werden aus dem Eingabebild und dem Maskenbild an jedem Bildpunkt wie folgt berechnet:

Hierfür ist die Berechnung der Kovarianz zwischen Maskenbild (hier ) und Eingabebild (hier: )

und der Varianz des Maskenbildes

an jedem Bildpunkt notwendig.

ist ein quadratischer Mittelwertfilter am Punkt , dessen Größe ein frei wählbarer Parameter ist.

ist ein frei wählbarer Parameter, der die Unterscheidung zwischen flachen Stellen und Kantenbereichen festlegt.

Verhalten der Parameter:

  • An flachen Stellen dominiert , während klein ist
  • An Kanten dominiert , während klein ist

Beispiel

Vorteile

  • Der Filter weist eine lineare Komplexität auf, da der quadratische Filterkernel des Mittelwertes durch versetzte Summen berechnet werden kann. Er ist dabei wesentlich weniger komplex als der bilaterale Filter.
  • Es entstehen glatte, aber kantenerhaltende Bilder.

Weblinks

Beispielimplementation in Python

Einzelnachweise

  1. Kaiming He, Jian Sun, Xiaoou Tang: Guided Image Filtering. 2010 (kaiminghe.com [PDF]).