Kapitel 7: Kanten und Konturen Wie entsteht eine Kante? Gradienten-basierte Kantendetektion Filter zur Kantendetektion Weitere Kantenoperatoren Von Kanten zu Konturen Kantenschärfung BV: Kap 7 Kanten und Konturen
BV: Kap 7 Kanten und Konturen Überblick Kanten, Konturen: lokale Veränderung der Intensität Kanten und Konturen spielen dominante Rolle im menschlichen Sehen Subjektive Schärfe eines Bildes über Deutlichkeit seiner Strukturen Menschliches Auge legt Gewicht auf kantenförmige Strukturen Einzelne Striche einer Karikatur legen Inhalt fest Komplette Figuren werden aus wenigen dominanten Linien rekonstruiert BV: Kap 7 Kanten und Konturen
Kanten spielen dominante Rolle BV: Kap 7 Kanten und Konturen
1 Wie entsteht eine Kante? Kanten: Intensität ändert sich stark auf kleinem Raum entlang einer Richtung Je stärker die Änderung, desto stärker der Hinweis auf eine Kante Stärke der Änderung entspricht der ersten Ableitung BV: Kap 7 Kanten und Konturen
2 Gradienten-basierte Kantendetektion Startpunkt: Betrachtung einer Dimension mit einer heller Region im Zentrum (b) Intensitätsprofil und erste Ableitung BV: Kap 7 Kanten und Konturen
BV: Kap 7 Kanten und Konturen Diskrete Funktion Diskrete Funktionen haben keine Ableitung Abschätzung: Gerade durch benachbarte Punkte BV: Kap 7 Kanten und Konturen
2.1 Partielle Ableitung und Gradient Partielle Ableitung: Ableitung einer mehrdimensionalen Funktion entlang einer Koordinatenrichtung, z.B. entlang x und y Gradient: Vektor der Funktion I an der Stelle (u,v) BV: Kap 7 Kanten und Konturen
BV: Kap 7 Kanten und Konturen Betrag des Gradienten Der Betrag des Gradienten ist invariant unter Bilddrehung D.h. unabhängig von der Orientierung der Bildstrukturen Wichtig für Lokalisierung von Kanten Grundlage vieler Kantendetektoren BV: Kap 7 Kanten und Konturen
BV: Kap 7 Kanten und Konturen 2.2 Ableitungsfilter Durch die Abschätzung der diskreten Funktion ergibt sich der Gradientenfilter in horizontaler Richtung: Koeffizient für I(u-1,v): -0.5 Koeffizient für I(u,v): 0 Koeffizient für I(u+1,v): +0.5 Gradientenfilter für die vertikale Richtung: BV: Kap 7 Kanten und Konturen
Anwendung des Ableitungsfilters horizontale Richtung Original Ableitung vertikale Richtung Betrag des Gradienten (b)(c): negativ = schwarz positiv = weiß Nullwerte = grau BV: Kap 7 Kanten und Konturen
3 Filter zur Kantendetektion Abschätzung der Gradienten ist Grundlage der meisten Operatoren für Kantendetektion Alternative Operatoren unterscheiden sich in: Schätzung der Richtungskomponente Zusammenfassung der Komponenten zum Gesamtergebnis BV: Kap 7 Kanten und Konturen
3.1 Prewitt- und Sobel-Operator Beide Operatoren sind sehr ähnlich, sie haben nur leicht unterschiedliche Filter Filter des Prewitt-Operators Separierte Form: Glättung über 3 Zeilen bzw. 3 Spalten Gewöhnlicher Gradient, d.h. Ableitung BV: Kap 7 Kanten und Konturen
Sobel-Operator und Abschätzung Filter des Sobel-Operators Abschätzung der Gradienten nach Skalierung Bei Glättung: Zentrales Element Stärker beachten Prewitt-Operator Sobel-Operator BV: Kap 7 Kanten und Konturen
Kantenstärke und Kantenrichtung Skalierte Filterergebnisse (Gradientenwerte): Kantenstärke: Betrag der Gradienten: Lokale Kantenrichtung Berechnung der inversen Tangensfunktion über arctang2 BV: Kap 7 Kanten und Konturen
Ablauf der Kantendetektion Gradientenfilter Hx und Hy anwenden Kantenstärke E berechnen Kantenrichtung Φ berechnen Φ: PI BV: Kap 7 Kanten und Konturen
Verbesserung des Sobel-Operator Sobel-Operator ist weit verbreitet Verbesserung von Sobel bzgl. Winkelfehler: BV: Kap 7 Kanten und Konturen
BV: Kap 7 Kanten und Konturen 3.2 Roberts-Operator Einer der ältesten Kantenoperatoren Nur zwei 2x2 Filter: Kantenstärke: Betrag des Gradienten Alternativ: Maximum der Gradienten max( |I(u+1,v) − I(u,v+1|, | I(u,v) − I(u+1,v+1)| ) BV: Kap 7 Kanten und Konturen
Diagonale Richtungskomponenten beim Roberts-Operator BV: Kap 7 Kanten und Konturen
BV: Kap 7 Kanten und Konturen 3.3 Kompass-Operatoren Guter Kantenfilter ist Kompromiss Je besser Reaktion auf kantenartige Strukturen Desto stärker richtungsabhängig, D.h. umso enger der Winkelbereich für Erkennung Kompass-Operatoren: Satz von „engen“ Filtern für mehrere Richtungen Beispiel: Kantenoperator von Kirsch für acht verschiedene Richtungen im Abstand von 45o Nur vier werden berechnet, da die anderen bis auf das Vorzeichen gleich sind Z.B. H0 = -H4 BV: Kap 7 Kanten und Konturen
Die acht Kirsch-Filter BV: Kap 7 Kanten und Konturen
Berechnungen für Kirsch-Operator Ermittlung der acht Richtungsbilder Kantenstärke: Maximum der einzelnen Ergebnisse Stärkste Filter bestimmt Kantenrichtung: Praxis: kaum Vorteile gegenüber einfacheren Operatoren BV: Kap 7 Kanten und Konturen
3.4 Kantenoperatoren im ImageJ Menü: Process -> Find Edges Plugin: ImageProcessor.findEdges() Sobel-Operator wird angewendet für fast alle Bildtypen BV: Kap 7 Kanten und Konturen
4 Weitere Kantenoperatoren 4.1 Kantendetektion mit zweiter Ableitung Problem der 1. Ableitung: Kanten sind so breit wie die Länge des Anstiegs Genaue Kantenposition ist schwierig zu lokalisieren 2. Ableitung Misst lokale Krümmung Kanten: Nulldurchgänge der 2. Ableitung Da 2. Ableitung sehr rauschanfällig ist, vorher geeigneten Glättungsfilter anwenden Bekannt: LoG: „Laplacian-of-Gaussian-Operator Zuerst Glättung mit Gauß-Filter Dann 2. Ableitung mit Laplace-Filter (Kap 7.6) BV: Kap 7 Kanten und Konturen
Vergleich unterschiedlicher Kantendetektoren Canny liefert wesentlich klareres Kantenbild als einfache Operatoren BV: Kap 7 Kanten und Konturen
4.2 Kanten auf verschiedenen Ebenen Das Ergebnis einfacher Kantenoperatoren entspricht häufig nicht dem subjektiven Empfinden: Kantenoperatoren verdeutlichen nur lokale Unterschiede Visuelles Sehen setzt auch verschwindende Unterschiede fort Kanten entstehen auf verschiedenen Auflösungsebenen Der Sobel-Filter betrachtet nur 3x3 Region Alternativen: Größere Kantenfilter oder Mehrere Bilder mit unterschiedlicher Auflösung analysieren Multi-Resolution-Technik: Kanten auf unterschiedlichen Auflösungsebenen finden Jeweils dominante Kante bestimmen BV: Kap 7 Kanten und Konturen
BV: Kap 7 Kanten und Konturen 4.3 Canny-Filter Canny-Filter Satz von gerichteten, relativ großen Filtern Ergebnisse werden im Kantenbild zusammengefasst Ziele Anzahl falscher Kanten minimieren Kanten möglichst gut lokalisieren Nur eine Markierung pro Kante Realisierung Gradienten-Filter Lokalisierung durch Nulldurchgänge der 2. Ableitung Meistens: eine Bildversion mit unterschiedlicher Auflösung Realisierung durch unterschiedliche Filterradien mit entsprechenden Glättungsparametern σ Beschreibung in [Efford 2000] BV: Kap 7 Kanten und Konturen
Canny-Filter mit unterschiedlichen Glättungsparametern σ BV: Kap 7 Kanten und Konturen
5 Von Kanten zu Konturen 5.1 Konturen verfolgen Kanten sind die Ausgangsbasis Für das Finden größerer Bildstrukturen Insbesondere Konturen von Objekten Konturen entlang Kanten verfolgen Beginn: Bildpunkt mit hoher Kantenstärke auswählen Schrittweise Kanten in beider Richtungen verfolgen Abschluss: Kanten schließen sich zu einer durchgehenden Kontur Probleme Eine Kante endet in einer Region ohne Abschluss Kreuzende Kanten sind mehrdeutig Konturen spalten sich ev. in mehrere Richtungen auf Konturverfolgung auf Kantenbildern nur bei klarer Trennung zwischen Objekt und Hintergrund Meisten: Verfolgung anhand Binärbilder (siehe Kapitel 9) BV: Kap 7 Kanten und Konturen
BV: Kap 7 Kanten und Konturen 6 Kantenschärfung Beim Scannen oder Skalieren von Bildern entstehen Unschärfen Kompensation durch nachträgliches Schärfen Verstärken von hochfrequenten Bildanteilen D.h. an raschen Bildübergängen Im Folgenden vorgestellt Laplace-Filter Unscharfe Maskierung (USM) BV: Kap 7 Kanten und Konturen
BV: Kap 7 Kanten und Konturen 6.1 Laplace-Filter Basis: Zweite Ableitung Folgende Folie: Eindimensionale, kontinuierliche Funktion f(x) Erste Ableitung f‘(x) Zweite Ableitung f‘‘(x) Schärfung: Funktion minus gewichtete zweite Ableitung Grad der Schärfung ist abhängig vom Gewichtungsfaktor ω ω : Omega BV: Kap 7 Kanten und Konturen
Kantenschärfung mit der zweiten Ableitung BV: Kap 7 Kanten und Konturen
BV: Kap 7 Kanten und Konturen Laplace-Operator Zweidimensional: zweite Ableitung in horizontaler und vertikaler Richtung Laplace-Operator: Summe der zweiten Ableitungen Die zweite Ableitung einer diskreten Funktion kann mit linearen Filtern berechnet werden Mehrere Beispiele auf den nächsten Folien BV: Kap 7 Kanten und Konturen
Beispiel für Laplace-Filter Herleitung: [Jähne2002] BV: Kap 7 Kanten und Konturen
BV: Kap 7 Kanten und Konturen Anwendung des Filters Original 2. Ableitung vertikal 2. Ableitung horizontal Laplace-Operator (b)(c): negativ = schwarz positiv = weiß Nullwerte = grau BV: Kap 7 Kanten und Konturen
Weitere gebräuchliche Varianten BV: Kap 7 Kanten und Konturen
Schärfung mit dem Laplace-Filter I‘ = I - ω (HL * I) Faktor ω bestimmt Stärke der Schärfung ω ist vom verwendeten Filter abhängig Da 2. Ableitung anfällig gegenüber Bildrauschen: vorher Glättung mit Gauß-Filter ω: Omega BV: Kap 7 Kanten und Konturen
Beispiel: Schärfung mit Laplace-Filter Original Anwendung des Laplace-Filters auf Original Geschärftes Bild Profil der markierten Zeile BV: Kap 7 Kanten und Konturen
6.2 Unscharfe Maskierung (unsharp masking, USM) Verwendung: Astronomie, digitaler Druck, … Ursprung: analoge Filmtechnik Schärfung durch optische Überlagerung mit unscharfen Duplikaten Ablauf USM-Filter in zwei Schritten: Die Maske ergibt sich aus Original minus geglättetes Original Auf Original wird die gewichtete Maske angewendet BV: Kap 7 Kanten und Konturen
BV: Kap 7 Kanten und Konturen Formal Maske: Original plus gewichtete Maske: Gewichtungsfaktor a steuert die Stärke der Schärfung BV: Kap 7 Kanten und Konturen
USM-Filter mit unterschiedlichen Radien für Glättung Stärke der Schärfung mit a = 100% bei allen Bildern Profil der markierten Bildzeile BV: Kap 7 Kanten und Konturen
Glättungsfilter und Erweiterungen Geeignete Glättungsfilter für USM Prinzipiell: jeder Glättungsfilter Üblich: Gauß-Filter mit Radius 1 .. 20 Gewichtungsfaktor a liegt zwischen 0.2 .. 4.0 Erweiterungen für USM USM verstärkt auch sichtbare Rauscheffekte Einige Implementierungen (Adobe Photoshop): Schärfung erst, wenn Schwellwert für lokalen Kontrast überschritten ImageJ Process -> Filter -> Unsharp Mask Plugin: siehe nächste Folie BV: Kap 7 Kanten und Konturen
BV: Kap 7 Kanten und Konturen Plugin: UnsharpMask import ij.plugin.filter.UnsharpMask; … public void run(ImageProcessor imp){ UnsharpMask usm = new UnsharpMask(); double r = 2.0; // standard radius double a = 0.6; // standard weight usm.sharpen(imp,r,a); } BV: Kap 7 Kanten und Konturen
Laplace- vs. USM-Filter Laplace ist Sonderfall von USM Formaler Beweis: [Burger2005] S.136 BV: Kap 7 Kanten und Konturen
BV: Kap 7 Kanten und Konturen Weitere Kapitel [Burger2005] vs. Vorlesung Auffinden von Eckpunkten Detektion einfacher Kurven Morphologische Filter -> Kapitel 8 Regionen in Binärbildern -> Kapitel 9 Farbbilder -> Kapitel 10 Einführung in die Spektraltechniken Die diskrete Fouriertransformation in 2D Die diskrete Kosinustransformation Geometrische Bildoperationen Bildvergleich BV: Kap 7 Kanten und Konturen
BV: Kap 7 Kanten und Konturen Literatur Wilhelm Burger, Mark J. Burge: Digitale Bildverarbeitung, Springer Verlag, 2005 N. Efford: Digital Image Processing, A Practical Introduction Using Java B. Jähne: Digitale Bildverarbeitung, Springer Verlag, 5. Auflage, 2002 BV: Kap 7 Kanten und Konturen