Einführung in die medizinische Bildverarbeitung SS 2013 Stephan Gimbel 1
Kurze Wiederholung Gradienten 1. und 2. Ableitung grad( f ( x, y) ) = f ( x, y) = f ( x, y) x f ( x, y) y 2 f ( x, y) = 2 f ( x, y) x 2 2 f ( x, y) y 2 1. Ableitung: Maximum 2. Ableitung: Null-Durchgang 2
Kurze Wiederholung Länge des Vektors die Länge des Vektors gibt die Stärke der Änderung an (Magnitude) ( ) = mag( f ) = g 2 2 x + g y M x, y Annäherung über Manhatten-Distanz: Richtung des Gradientenvektors Richtung der größten Änderung ( ) = arctan g y α x, y ( ) G f x, y G x + G y g x Operatoren Robert s Kreuz Prewitt Sobel 3
Kantenfilter mit zweiter Ableitung Laplace-Operator zweidimensionales Äquivalent zur zweiten Ableitung definiert auf f(x,y): 2 f = 2 f x 2 + 2 f y 2 Annäherung: ( ) 2 f x = G f x [ i, j +1] f [ i, j] = 2 x x f [ i, j +1] = f [ i, j ] x x ( f [ i, j + 2] f [ i, j +1] ) f [ i, j +1] f i, j = f [ i, j + 2] 2 f [ i, j +1]+ f [ i, j] ( [ ]) Problem: Zentrum der Approximation [i,j+1] 4
Lösung: Substitution j mit j-1 dadurch zentriert auf [i,j] 2 f = f 2 [ i, j +1] 2 f [i, j]+ f [i, j 1] x 2 f y 2 2 = f [ i +1, j ] 2 f [i, j]+ f [i 1, j] 0 1 0 1 4 1 0 1 0 es gibt weitere Variationen der Filterkerne Laplace-Operator repräsentiert eine Kante nicht durch ein Maximum, sondern durch einen Nulldurchgang sehr Rauschempfindlich! benötigt sehr gute Glättungsfilter 5
Laplace Edge f [ k,l] = 1 2 1 2 13 2 1 2 1 6
Marr-Hildreth Kantendetektor David Marr / Ellen Catherine Hildreth 1980 Grauwert-Änderungen sind abhängig von der Bildgröße/Skalierung starker Wechsel des Grauwertes bedeutet Maximum in erster Ableitung und Nulldurchgang in der zweiten Ableitung Operatoren sollten verschiedene Größen haben Zwei Bedingungen: 1. Differential-Operator der im diskreten Bereich eine Annäherung an die erste und zweite Ableitung findet, für jeden Pixel im Bild 2. Sollte anpassbar sein großer Operator für weiche Kanten kleiner Operator für harte, abrupte Kanten Idee: 2 G mit: 2 = 2 f x 2 + 2 f y 2 G( x, y) = e x 2 +y 2 2σ 2 Laplace kombiniert mit 2D Gauss 7
Marr-Hildreth Kantendetektor ( ) = 2 G( x, y) 2 G x, y = x x σ 2 e σ 1 4 = x2 σ 2 x 2 +y 2 2σ 2 e x 2 x 2 +y 2 + y 2σ 2 + y2 + 2 G( x, y) y 2 x y σ e 2 2 +y 2 2σ 2 σ 1 4 σ 2 e x 2 +y 2 2σ 2 2 G x, y ( ) = x2 + y 2 2σ 2 σ 4 e x 2 +y 2 2σ 2 wird als LoG (Laplacian of a Gaussian) oder Mexican Hat Operator bezeichnet 8
0 0 1 0 0 0 1 2 1 0 1 2 16 2 1 0 1 2 1 0 0 0 1 0 0 [Quelle:http://miac.unibas.ch/SIP/07-Segmentation-media/figs/LoG.png] Nulldurchgang bei x 2 + y 2 = 2σ 2 Kreis mit Radius 2σ um das Zentrum 2 2σ 9
Marr-Hildreth Eigenschaften Zwei Ideen: 1. Gauss-Anteil für Blur, reduziert Intensität von Strukturen (inkl. Rauschen). Sowohl im räumlichen als auch Frequenzbereich, daher weniger Artefakte 2. Zweite Ableitung, da diese isotrop ist (Rotationsunabhängig) ( ) = 2 G( x, y) f ( x, y) ( ) = 2 G x, y g x, y Linearität: g x, y ( ) f x, y ( ) Algorithmus: 1. Filtere Eingabebild mit n x n Gauss-Tiefpass ( ) = e x 2 +y 2 G x, y 2σ 2 2. Berechne Laplacian aus dem Ergebnis von 1. mit geeigneter Maske (z.b. 3x3) 3. Finde die Null-Durchgänge im Ergebnis von 2. 10
[Quelle:http://www.ucl.ac.uk/~ucbplrd/motion/motion_images/Fig_1.gif] 11
Canny Edge Detektor enwickelt von John F. Canny 1986 Drei Ziele für das Verfahren: 1. Detektion mit niedriger Fehlerrate: Finde einen echten Kantenpunkt durch Maximierung der Wahrscheinlichkeit verringere die Wahrscheinlichkeit einen falschen Kantenpunkt zu finden durch Minimierung maximiere Signal-to-Noise Ratio 2. Lokalisierung: die gefundenen Kanten sollten so nahe wie möglich an den echten Kanten liegen 3. Anzahl gefundener Kanten: eine echte Kante sollte nicht mehr als eine detektierte Kante erzeugen (ähnlich Punkt 1) Dabei gibt es vier Schritte im Verfahren: 1. Smoothing: Glättung zum Minimieren von Rauschen 2. Gradienten finden: berechne Gradienten und Winkel 3. NMS (Non-Maximum Suppression): nur lokales Maximum wird als Kante markiert 4. Double Tresholding: Erkenne potentielle Kanten durch Thresholding und Verbindungsanalyse (Kanten erkennen und verbinden) 12
gute Annäherung an optimalen Kantendetektor (1. Ableitung Gauss) x d 2 dx e 2σ 2 x 2 σ 2 e 2σ 2 = x benötigt aber eine Anwendung in alle möglichen Richtungen Lösung: 1. Smoothing mit 2D Gauss 2. Berechnung der Gradienten (Sobel-Operator) 3. Kantenstärke und Richtung f(x,y) = Eingabebild & G(x,y) = Gauss G( x, y) = e x 2 +y 2 2σ 2 geglättetes Bild: f s ( x, y) = G( x, y) f x, y ( ) Betrag und Winkel: M ( x, y) = g 2 2 x + g y und α x, y ( ) = tan 1 g y g x mit g = f s x x und g = f s y y 13
das Ergebnis enthält nun aber Erhöhungen oder Kämme (engl. Ridges) herum um lokale Maxima (ähnlich Blurring) dies muss beseitigt werden, die Kanten sollen also geschärft werden, z.b. mit NMS (Non Maxima Suppression) 1. Gradientenrichtung auf 45 runden 2. Kantenstärke des aktuellen Pixels mit dem Pixel entlang der positiven und negativen Gradientenrichtung bestimmen 3. Wenn die Kantenstärke des aktuellen Pixels am stärksten ist, diesen als Kante behalten. Ansonsten löschen [Quelle:Gonzalez/Woods Digital Image Processing] 2 3 5 4 6 4 5 7 6 7 5 6 4 3 2 3 4 3 1 1 [Quelle:Canny Edge Detection, 09gr820] 14
Thresholding Threshold g N (x,y) um falsche Kantenpunkte zu reduzieren wenn T zu niedrig falsche Kantenpunkte (false positives) wenn T zu hoch echte Kantenpunkte werden entfernt (false negatives) Lösung: Hysteresis Thresholding mit zwei Thresholds T L und T H Verhältnis zwischen T L und T H etwa 2:1 oder 3:1 Algorithmus: erstelle zwei neue Bilder die zuerst 0 sind Thresholding: g NH g NL ( x, y) = g N ( x, y) T H ( x, y) = g N ( x, y) T L Ergebnis: g NH (x,y) hat weniger nonzero Pixel als g NL (x,y), aber alle nonzero Pixel aus g NH (x,y) sind in g NL (x,y) enthalten, da g NL (x,y) mit niedrigerem Threshold erstellt wurde Eliminiere alle nonzero Pixel in g NL (x,y) die auch in g NH (x,y) vorkommen g NL ( x, y) = g NL x, y ( ) g ( NH x, y) die nonzero Pixel in g NH (x,y) und g NL (x,y) sind als starke bzw. schwache Kantenpunkte anzusehen 15
Thresholding (Fortsetzung) nach dem Thresholding werden alle Pixel in g NH (x,y) als echte Pixel angesehen und daher unmittelbar markiert Abhängig von T H haben die Kanten in g NH (x,y) evtl. Lücken. Kanten können wie folgt gebildet werden: 1. Lokalisiere den nächsten unbesuchten Kantenpunkt p in g NH (x,y) 2. Markiere alle schwachen Pixel in g NL (x,y) als Kantenpunkt, wenn sie mit p verbunden sind (z.b. N8) 3. wenn alle nonzero Pixel in g NH (x,y) besucht wurden, fahre mit Schritt 4 fort, ansonsten wiederhole von Schritt 1 an 4. setze alle Pixel in g NL (x,y) auf 0, die nicht als echte Kantenpunkte markiert wurden Letzter Schritt: füge alle nonzero Pixel aus g NL (x,y), g NH (x,y) hinzu 16
erhaltende Glättung Glättung des Bildes beeinflusst auch Kanten (Übergänge werden weicher ) Kantendetektion ohne Glättung führt u.u. zu falschen Kantenpixeln Lösung: Kantenerhaltende Glättung (Anisotrope Diffussion) Ausgangspunkt: Heat Equation Gauss-geglättetes Bild repräsentiert einen Zeitpunkt aus der Lösung, mit dem Originalbild aus Ausgangsbedingung Lösung zu g( x, y,t) t mit g x, y,0 = g( x, y,t) ( ) = f ( x, y) ist g( x, y,t) = G 2t f ( x, y) mit G( σ ) = Gauss-Filter mit Std.-Abweichung σ 17
erhaltende Glättung Anisotropische Diffusion beinhaltet einen Leitterm, der von der Struktur des Bildes abhängt Dies schränkt die Glättung an Kanten ein g t = c( g ) g c g Dabei ist ein Fuzzy Cutoff, der die Leitung in Gebieten mit großem reduziert Als effektiv hat sich in der Praxis dabei folgender Wert erwiesen: c( g ) = e ( ) g g 2 2k 2 Da es sich im einen Iterativen Prozess handelt wird dabei mit jedem Iterationsschritt der Radius des Gauss-Filters erhöht 18