Kantendetektion
Die Kantendetektion oder Kantenextraktion ist Teil einer Segmentierung von Elementen in der Bildverarbeitung. Sie versucht, flächige Bereiche in einem digitalen Bild voneinander zu trennen, wenn sie sich entlang gerader oder gekrümmter Linien ausreichend in Farb- oder Grauwert, Helligkeit oder Textur unterscheiden. Spezielle Kantenoperatoren sollen die Übergänge zwischen diesen Bereichen erkennen und als Kanten markieren. Zugleich soll aber ein einzelner, homogener Bereich als solcher erkannt werden und von einem guten Kantendetektor nicht durch eine Kante in zwei Flächen geteilt werden.
Eine Hauptschwierigkeit der Kantendetektion, insbesondere bei dreidimensionalen Objekten, ist die Unterscheidung von Reflexionskanten, die auf Eigenschaften des Objektes beruhen, und Beleuchtungskanten, die auf Eigenschaften der Beleuchtung beruhen (z. B. Schatten, Lichtkegel).
Die Kantendetektion wird u. a. im Computer Vision, in der Photogrammetrie und der Kartografie eingesetzt, um z. B. aus Luftbildern genaue Objekt- oder Geländekanten zu detektieren.
Definition Kante
Unter einer Kante versteht man eine Kurve , entlang derer der Gradient des Bildes immer in Normalenrichtung zeigt (das heißt eine Isolinie):
In der Literatur werden teilweise auch Gratlinien als Kanten bezeichnet (wo obige Definition nicht greifen würde).
Funktionsweise
Ein Kantendetektor berechnet in der Regel den Farbwertgradienten an jedem einzelnen Pixel eines Bildes durch Untersuchung eines den Punkt umgebenden Bereiches. Dieser Vorgang erfolgt durch diskrete Faltung des Bildes mit einer Faltungsmatrix, dem Kantenoperator. Letzterer definiert dabei die Größe des zu untersuchenden Umfeldes und mit welcher Gewichtung dessen einzelne Pixel in die Berechnung eingehen. Der Kantenoperator ermittelt für das zentrale Pixel aus der Umgebung quasi einen mittleren Wert für den Gradienten. Führt man diese Operation für alle Pixel im Bild durch, so kann man aus der resultierenden Matrix der Gradienten ein neues Bild zusammensetzen, das Kantenbild genannt wird. Auf ihm heben sich die Kanten zwischen homogenen Bereichen ab, da an diesen Stellen ein vergleichsweise großer Gradient der Farbwerte vorliegt.
Wendet man den Kantenoperator auf das Ergebnisbild an, so kann man quasi die zweite Ableitung bilden, d. h., es werden die Änderungen des Helligkeits-Gradienten sichtbar. Die Kanten treten in der zweiten Ableitung meist am deutlichsten hervor. Feine Kanten können hierbei jedoch untergehen und bleiben unentdeckt.
Der größte Unterschied verschiedener Kantendetektoren besteht im Allgemeinen im verwendeten Kantenoperator.
Für eine korrekte Kantendetektion sind in der Regel vier Schritte notwendig:
- Glätten: Unterdrücke so viel Rauschen wie möglich, ohne die echten Kanten zu zerstören.
- Verbesserung: Wende einen Filter an, um die Qualität der Bildränder zu verbessern.
- Erkennung: Bestimme, welche Pixel als Rauschen verworfen werden sollen und welche beibehalten werden sollte. Normalerweise liefert die Schwellenwertbildung das Kriterium, das für die Erkennung verwendet wird.
- Lokalisierung: Bestimme die genaue Position einer Kante. Für einige Anwendungen kann es erforderlich sein, die Position einer Kante genauer als den Abstand zwischen den Pixeln zu bestimmen. Kantenverdünnung und Verknüpfung sind in der Regel in diesem Schritt erforderlich.[1]
Berechnungen
Kantendetektion mit Ableitungen
Ein digitales Bild ist eine zweidimensionale Funktion. Daher werden Operatoren, die Kanten beschreiben, mit partiellen Ableitungen ausgedrückt. Punkte, die an einer Kante liegen, können erkannt werden durch:
- Erfassen lokaler Maxima oder Minima der ersten Ableitung
- Erfassen der Nullstellen der zweiten Ableitung
Weil ein digitales Bild keine kontinuierliche Funktion ist, sondern eine diskrete Funktion von neben einander liegenden Pixeln, kann man die partiellen Ableitungen nicht direkt bilden. Stattdessen muss man, um die Ableitungen von Farbwerten zu berechnen, sie mit endlichen Differenzen annähern:
1. Ableitung
2. Ableitung
Das kann man auf zwei Dimensionen verallgemeinern:[1]
Operatoren
Die bekanntesten Kantenoperatoren (auch Kantenfilter) sind:
- Sobel-Operator
- Scharr-Operator
- Laplace-Filter (siehe auch Laplace-Operator)
- Prewitt-Operator
- Roberts-Operator
- Kirsch-Operator
- Canny-Algorithmus
- Marr-Hildreth-Operator (auch Laplacian of Gaussian (LoG) oder Sombrerofilter)
- Kontrastverstärker
- Aktive Kontur (Snake)
- Extremalspannenfilter
- Ein Schwarzweißfoto
- Normalisierte Gradientengröße des Sobel-Operators
- Normalisierter x-Gradient des Sobel-Operators
- Normalisierter y-Gradient des Sobel-Operators
- Normalisierte Gradientengröße des Scharr-Operators
- Normalisierte Gradientengröße des Roberts-Operators
- Normalisierte Gradientengröße des Prewitt-Operators
Menschliches Auge
Für den Menschen ist Kantendetektion eine wesentliche Voraussetzung zur visuellen Objekterkennung. Sein Sehapparat leistet diese Aufgabe hauptsächlich mit der lateralen Hemmung. Dadurch werden sogar feinste Linienstrukturen aus größerer Distanz erkennbar, etwa dünne Drähte oder ferne Wegverläufe. Allerdings sind auch optische Täuschungen möglich, etwa teilweise bei den sog. Marskanälen oder den Machschen Streifen.
Einzelnachweise
- University of Nevada, Reno: Edge detection