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

Prinzip Bearbeiten

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 Bearbeiten

Vorteile Bearbeiten

  • 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 Bearbeiten

Beispielimplementation in Python

Einzelnachweise Bearbeiten

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