Filter in der digitalen Bildverarbeitung

filter-header


Was sind eigentlich Filter? Und wie funktionieren sie?
Photoshop bietet über 100 Filter an. Doch die Bezeichnung »Filter« ist etwas irreführend, denn Filter im klassischen Sinn sind davon nur wenige. Die meisten in Photoshop vorhandenen Filter würde ich eher als Effekte bezeichnen. Ein Blick in Adobes Hilfe-Dokument erhärtet diesen Gedanken:

Mit Filtern können Sie Fotos korrigieren oder retuschieren und spezielle künstlerische Effekte anwenden, die Ihrem Bild das Aussehen einer Skizze oder eines impressionistischen Gemäldes verleihen.


Um zu verstehen, was klassische Filter sind, müssen wir diese zunächst richtig einordnen. Dazu lohnt sich ein Blick auf die verschiedenen Operationen in der digitalen Bildverarbeitung.

Man unterscheidet hier zwischen Punktoperationen, Nachbarschaftsoperationen und globalen Operationen.

Punktoperationen verwenden als Eingabe die Farb- bzw. Luminanzwerte eines einzelnen Pixels, berechnen damit einen neuen Wert und tragen das Resultat wieder in den Ursprungspixel ein. In Photoshop wäre so eine Operation beispielsweise die Korrektur mittels Gradationskurve, Farbbalance etc.

Nachbarschaftsoperationen nutzen als Eingabe nicht nur einen einzelnen Pixel, sondern verwenden für die Berechnung noch zusätzlich eine bestimmte Menge der umliegenden Pixel. Das Ergebnis der Operation wird dann wie bei den Punktoperationen in den einen Ursprungspixel geschrieben. Zu diesen Operationen kommen wir gleich nochmal, denn hier verstecken sich die klassischen Filter.

Unter globalen Operationen versteht man allen voran geometrische Operationen wie das Skalieren, Drehen oder Spiegeln eines Bildes. Im Gegensatz zu Punkt- oder Nachbarschaftsoperationen wird hier das komplette Bild als Eingabe verwendet und das Bild in Größe und Form verändert. Die Farb- und Luminanzwerte hingegen werden nicht verändert. Zu den globalen Operationen zählt aber auch die Fourier-Transformation.

Nachbarschaftsopertionen
Wie vorher schon beschrieben, handelt es sich bei den Nachbarschaftsoperationen um Operationen, die das Umfeld – also Nachbarschaft – eines Pixels in die Berechnung miteinbeziehen. Dabei filtern (!) sie gewisse Merkmale wie Kanten oder Störungen im Bild.

Man kann also sagen ein Filter ist eine lokale Bildoperation, die die Geometrie des Bildes nicht verändert. Diese Definition schließt zwar keine der Photoshop-Filter wirklich aus, dennoch ist soetwas wie »Ozeanwellen«, »Buntglas-Mosaik« oder »Blendenflecke« nicht die Art von Filter, um die es hier geht. Hier geht’s ums Weich- oder Scharfzeichnen. Oder Kanten betonen. Doch dazu später mehr. Zunächst möchte ich hier nochmal auf die Gliederung von Filtern eingehen.

Durchgesetzt hat sich die Einteilung in lineare und nicht-lineare Filter auf Basis deren mathematischen Eigenschaften. Bei linearen Filtern wird jeder Pixelwert durch die linear gewichtete Summe der Quellpixel berechnet. Was das heißt, sehen wir gleich. Vorerst ist nur wichtig, dass zum Beispiel der Gaußsche Weichzeichner zu dieser Gruppe zählt.
Bei nicht-linearen Filtern werden die Pixelwerte des Quellbildes durch eine nicht-lineare Funktion verknüpft. Beispiele hierfür sind »Helligkeit interpolieren« oder »Helle/Dunkle Bereiche vergrößern«.

Nachdem wir jetzt schon ein ungefähres Verständnis davon haben, was Filter sind, sollten wir uns nun damit beschäftigen, wie sie funktionieren.

Wie funktionieren lineare Filter?
Um es einfach zu machen, stellen wir uns dazu zunächst ein Bild mit 5 x 5 Pixel vor. Um das ganze noch weiter zu vereinfachen, gehen wir zudem von einem Graustufenbild aus. Dieses Graustufenbild wollen wir weichzeichnen. Die einfachste Art hierfür ist die Anwendung des sogenannten Box-Weichzeichnungs-Filters. Dieser Filter sieht sich einen Pixel an und bildet mit den umliegenden Pixeln (Nachbarschaft) einen Durchschnittswert. Das Resultat wird dann in den Ursprungspixel (Koordinatenursprung oder Hotspot genannt) eingetragen. Es ist wichtig, zu beachten, dass obwohl mehrere Pixel verwendet werden, immer nur der Wert eines Pixels berechnet wird. Wiederholt man diesen Vorgang für alle Pixel in einem Bild, werden die Werte geglättet und das Bild somit weichgezeichnet. (Anders ausgedrückt: Die hohen Frequenzen werden eliminiert. Mehr über die Frequenzfilter erfährst du im Artikel Der Hochpass-Filter und seine Geschwister )

Die folgende Abbildung verdeutlicht das Prinzip nochmal:

visualisierung

Das zu verarbeitende Pixel (26) und dessen Nachbarschaft wird mit den Filterkoeffizienten multipliziert und anschließend werden die Werte addiert:

1x32 + 1x25 + 1x42 + 1x25 + 1x26 + 1x37 + 1x16 + 1x39 + 1x55 = 297

Das Ergebnis muss – wie bei jeder Durchschnittsberechnung – noch durch die Anzahl der Werte dividiert werden:

297/9 = 33 – Fertig.

Die Filtermatrix fährt dabei Pixel für Pixel über das Bild. An den Rändern gibt es natürlich ein Problem, denn hier fehlen einige Werte. Hierfür gibt es mehrere Lösungen, auf die ich hier aber nicht näher eingehe.

moving-filtermatrix


Wie groß diese Filtermatrix (auch Filtermaske, Faltungsmatrix oder Kernel genannt) ist, hängt vom gewählten Radius ab.

box-blur-filter-radius


Das besondere an dem Box-Weichzeichnungs-Filter ist, dass alle Pixel gleich gewichtet werden.

Der Gaußsche Weichzeichner funktioniert nach einem ähnlichen Prinzip, allerdings wird nicht einfach der Durchschnitt aller umliegenden Pixel berechnet, sondern ein gewichteter Durchschnitt. Dafür verwendet Photoshop eine Filtermatrix, die der Form einer Gaußschen Glocke entspricht. Die Filterkoeffizienten werden daher auch Gewichte genannt.

gaussian-kernel


Diese Operation, also das Wichten und Summieren, wurde übrigens nicht extra für die Bildverarbeitung erfunden, sondern existiert in der Mathematik schon lange und ist als »Faltung« oder »Konvolution« bekannt.

Im Gegensatz zu den Punktoperationen (Gradationskurve etc.) kann das Ergebnis dieser Faltung nicht direkt in das Ausgangsbild zurückgegeben werden. Denn die Ausgangspixel werden ja mehrfach benötigt. Würde man die neuen Werte sofort eintragen, hätte das zur Folge, dass die Filtermatrix beim Berrechnen des nächsten Pixels nicht nur von den Originalwerten ausgeht, sondern den zuvor bearbeiteten Pixel in die Berechnung miteinbezieht. Um das zu verhindern, wird das Ergebnis zunächst in einen »Zwischenspeicher« geschrieben und erst wenn alle Pixel berechnet wurden, werden die Ergebnisse in das Ausgangsbild zurückgegeben. Man nennt diese Vorgehensweise parallele Verarbeitung. Demgegenüber steht die sequentielle Verarbeitung, bei der die neu berechneten Pixel eben sofort in das Ausgangsbild zurückgegeben werden. (Die genaue Bezeichnung für solche Filter lautet »Infinite Impulse Response Filter«.)

Wie funktionieren nicht-lineare Filter?
Nicht-lineare Filter sind im Gegensatz zu den linearen Filter etwas schwieriger zu gliedern bzw. zu beschreiben. Ich möchte daher nur über die sogenannten Rangordnungsfilter (morphologische Operatoren) sprechen.

Doch noch einmal zurück zu den linearen Filtern. Diese haben nämlich einen Nachteil: Sie entfernen beim Weichzeichnen auch wichtige »formgebende« Bildbestandteile wie Kanten oder Linien. Daher eignen sie sich nur bedingt für das Entfernen von Störungen. Anders sieht es bei den Rangordnungsfiltern aus. Wie der Name schon andeutet, ordnen und selektieren diese Filter – im Gegensatz zu den linearen Filtern, die gewichten und addieren.

Im folgenden Vergleich ist zu sehen, dass der Rangordnungsfilter »Helligkeit interpolieren« das Bild weichzeichnet, die Kanten im Bild aber wesentlich besser beibehält als der Gaußsche Weichzeichner.

filter-vergleich


Ein Rangordnungsfilter sortiert alle Luminanzwerte eines Bild in aufsteigender Reihenfolge. Welcher Pixel nun selektiert und in den Ursprungspixel zurückgegeben wird, hängt vom genauen Filter ab. Wie die Grafik unten zeigt, werden Filter, die den mittleren Wert verwenden Medianfilter genannt. Entsprechend werden die anderen beiden Varianten Minimum- bzw. Maximumfilter genannt.

Medianfilter-alternative-630px


Alle drei Rangordnungsfilter haben in Photoshop andere Namen als in der Literatur verwendet werden:
Dunkle Bereiche vergrößern = Erosion = Maximum = Erode
Helle Bereiche vergrößern = Dilatation = Minimum = Dilate
Helligkeit interpolieren = Median

Weiterführendes
Auch wenn diese Grundlagen für die Anwendung der Filter nicht zwingend notwendig sind, so helfen sie doch bessere Entscheidungen bei der Filterwahl bzw. der Wahl der dazugehörigen Parameter zu treffen. Darüber hinaus sind sie für einen speziellen Filter dann doch von großer Bedeutung: dem Filter »Eigener Filter«. Mit diesem können nämlich lineare Filter erstellt werden. Wie das funktioniert, erfährst du im kommenden Artikel.

Comments