Kantenfilter
sollen im Gegensatz zu Glättungsfiltern lokale Variationen im Grauwert eines
Bildes hervorheben und konstante Grauwerte unterdrücken. Wenn Sie sich eine
Kante als einen kontinuierlichen Übergang von einem konstanten Grauwert zu einem
anderen, höheren konstanten Grauwert vorstellen, wird Ihnen sofort klar, daß
die Ableitung des Grauwertes nach der Ortskoordinate bei der Kantenposition
(genauer: am Wendepunkt) ein Maximum haben wird, links und rechts daneben, wo
die Grauwerte konstant sind, ist die Ableitung Null. Auch die zweite Ableitung
liefert die Kantenposition: sie ergibt einen Doppelpeak für die Kante, die Kantenposition
liegt beim Nulldurchgang zwischen den beiden Peaks.
Tatsächlich kann man Sensoren bauen, die Kanten finden, indem man das analoge
Grauwertsignal elektronisch differenziert. Das wird auch manchmal so gemacht,
z.B. bei der Erkennung von Magnetcodierungen mit einem induktiven Meßkopf („MICR“,
„Magnetic Ink CharacterRecognition“). In der digitalen Bildverarbeitung ist
das nicht so einfach: die Ableitung muß durch eine Diskretisierung berechnet
werden, die lediglich die Stützstellen auf dem diskreten Bildraster benutzt.
Diese Techniken sind aus der numerischen Mathematik seit langem bekannt. Auch
bei der numerischen Differentiation einer Funktion werden nur Funktionswerte
an diskreten Stützstellen benutzt.
Zwei wichtige Anforderungen an ein Kantenfilter sind:
- das Kantenfilter soll die Lage der Kante nicht verändern
- das Kantenfilter soll isotrop sein, also nicht nur Kanten hervorheben,
die in bestimmten Richtungen (etwa parallel zur x-Achse) verlaufen, sondern
alle Kantenrichtungen gleich behandeln.
Die elementaren Ableitungsfilter längs der x- und y-Achse:
sind unsymmetrisch, sie
verschieben die Position der Kante um ein halbes Pixel. Deshalb benutzt man lieber
die symmetrische Form:
Diese beiden Filter „finden“ optimal nur Kanten senkrecht zur x- bzw. y-Achse.
Anstelle der Ableitung benutzen viele Kantenfilter deshalb
eine Diskretisierung des Gradienten. Der Gradient ist ein Vektor, dessen
Komponenten die partiellen Ableitungen längs der x- und y-Achse sind. Der Gradient
zeigt in die Richtung des stärksten Anstiegs des Grauwertes an diesem Punkt in
der Fläche, sein Betrag ist ein Maß für die „Steilheit“ des Anstiegs.
Eine einfache Form dieses Kantenfiltertyps ist der Roberts-Cross-Operator:
Beide Operatoren werden separat auf das Bild angewendet. In jedem Pixel bildet
man dann den jeweiligen Betrag des Grauwertes im jeweiligen Ergebnisbild. Die
beiden Ergebnisbilder werden dann zu einem Ergebnisbild zusammengeführt, indem
man Pixel für Pixel entweder die Summe der Beträge oder das Maximum der Beträge
dem Pixel im Ergebnisbild zuweist.
Kantenfilter reagieren stark auf Rauschen. Deshalb wird
bei vielen Kantenfiltern senkrecht zur Ableitungsrichtung geglättet, z.B. beim
Prewitt-Filter:
Daraus kann man auch noch „Diagonalfilter“ herleiten:
Wieder bildet man die Summe der Beträge oder das Maximum für jedes Pixel und ordnet
diesen Wert dem Ergebnisbild zu.
Beliebt sind die Sobel-Filter, die eine gewichtete
Mittelung senkrecht zur Differenzierungsrichtung benutzen:
Ein ähnlicher Satz von Filtern sind die Kirsch-Operatoren.
In diesem Fall werden acht verschiedene Filter für alle „Himmelsrichtungen“ angegeben.
Ein solcher Filtersatz wird auch als „Kompaßfilter“ bezeichnet:
Die zweite partielle Ableitung wird mit elementaren symmetrischen Filtern realisiert
durch:
Der Laplace-Operator ist die Summe der zweiten partiellen
Ableitungen längs der beiden Koordinatenachsen. Er wird realisiert durch:
Dieser Operator ist (für kleine Wellenzahlen) isotrop, wirkt also in alle Richtungen
gleich.
Weitere Realisierungen des Laplace-Operators sind:
und:
Sie haben bessere systemtheoretische Eigenschaften als das elementare Laplace-Filter.
In der Literatur gibt es eine Reihe von weiteren, gut untersuchten Varianten von
Kantenfiltern, z.B. mit größeren Filtermasken. Filter werden später unter systemtheoretischen
Aspekten als Faltungen statt wie hier als Nachbarschafts-operationen aufgefaßt.
Manche Aspekte der Filteroperationen treten dadurch klarer hervor. Für industrielle
Anwendungen muß immer beachtet werden, daß Filteroperationen rechenintensiv sind.
Die Rechenzeiten nehmen mit steigender Filtergröße zu! Es ist deshalb für die
Implementierung interessant zu wissen, daß in manchen Fällen (nicht in allen!)
„größere“ Filter als Hintereinanderausführung „kleiner“ Filter realisiert werden
können. Mehr dazu später.
Bei industriellen Anwendungen ist oft Vorkenntnis über die Lage und Richtung von
Kanten innerhalb gewisser Toleranzen vorhanden. Es ist dann effektiver, diese
Vorkenntnis zu nutzen, statt ein aufwendiges Filter über das gesamte Bild laufen
zu lassen. Beispielsweise kann es dann genügen, in einem bestimmten Bildbereich
ein einfaches eindimensionales Filter vom Typ Dx zu verwenden oder
gar nur längs einer Linie senkrecht zu der erwarteten Kante nach einem Grauwertsprung
mit vorgegebener Mindesthöhe und Mindestbreite zu suchen („Antasten“).
Wenn die Kante gefunden ist, wird ihre Umgebung mit feineren Methoden untersucht.
Es gibt weitere Methoden, Kanten sichtbar zu machen und in diesem
Sinne Kanten zu erkennen oder den Kontrast zu verstärken. Beispielsweise kann
man eine Dilatation auf ein Bild anwenden und das Originalbild vom Ergebnis der
Dilatation subtrahieren. Dabei bleiben Kanten übrig (Das ist allerdings eine ziemlich
rüde Methode, bei der man nicht hoffen darf, daß die Kantenposition liegen bleibt!).
Entsprechend kann man zwei verschiedene Glättungsfilter benutzen und die Differenz
der entstehenden Bilder bilden. Dieses Verfahren wird als „ DoG“-Filter
bezeichnet, „Difference of Gaussian“, wenn die beiden Glättungsfilter Gaußfilter
sind. Auf diese Weise kann man auch Bandpaßfilter realisieren, die bestimmte Ortsfrequenzen
bevorzugt durchlassen. Man kann auch zunächst glätten und dann auf das Ergebnis
ein Laplacefilter anwenden. Diese Hintereinanderschaltung zweier Filter wird als
„LoG“-Filter bezeichnet, Laplace of Gaussian“.