Bildverarbeitung 4 - Filterung Frühjahrssemester 2015 | ETH Zürich Jan Dirk Wegner und Michal Havlena ETH Zürich, Institut für Geodäsie und Photogrammetrie (mit Material von Uwe Sörgel, Friedrich Fraundorfer, Stefan Roth und Bildmaterial aus dem Internet)
Themen heute
Faltung & Eigenschaften linearer Filter Tiefpassfilter Hochpassfilter
Nicht-lineare Filter
Filterung
2
Lokale Filteroperationen Punktoperatoren berücksichtigen nur den aktuellen Pixelwert und globale Transformationen verwenden das gesamte Bild. Lokale Filteroperationen beziehen die Nachbarwerte in der Umgebung eines Pixels mit ein für die Bestimmung des neuen Grauwerts. Die Nachbarschaft wird über eine Filtermaske (window, kernel) definiert, die schrittweise über das Bild geschoben wird. Jeweils wird der Wert eines Pixels im Ergebnisbild bestimmt, meist das Pixel in der Mitte der Maske. Original
Filtermaske Bild Filterung
3
Typen lokaler Filter Lineare Filter – Lineare digitale Filter h(x,y) führen Faltungsoperationen auf dem Bild g(x,y) durch. – Die Koeffizienten der Filtermatrix stellen dabei Gewichte dar, mit denen die jeweiligen Pixel multipliziert werden, bevor die Summe gebildet wird.
– Bei homogenen Filtern sind die Koeffizienten konstant, unabhängig vom Bildort (Verschiebungsinvarianz)
Nichtlineare Filter, z.B.:
– Rangordnungsfilter (Medianfilter etc.) – Morphologische Filter – Diffusionsfilter
Filterung
4
Eigenschaften der Faltung (convolution) Bild Filter
Faltungsoperator
skalare Multiplikation
Skalierungsfaktor
Bilder und Filter lassen sich vor der Filteroperation beliebig linear kombinieren! Aber: Vorsicht im Digitalen wegen Rundungseffekten und Rauslaufen aus Wertebereich Filterung
5
Einsatz linearer lokaler Filter Beispiele für typische Anwendungen linearer lokaler Filter
– Glättung – Hervorheben von auffälligen Punkten und Kanten Punktoperationen (Schwellwerte, Histogrammebnung etc.) können das nicht leisten, da lokaler Kontext notwendig ist!
Original Filterung
geglättet
Gradientenbild (Kanten) 6
Faltung
Im Unterschied zur Korrelation erfolgt eine Spiegelung (in der Praxis werden die Filterkoeffizienten gespiegelt). Für symmetrische Filter sind Faltung und Korrelation identisch. Faltung ist linear, weil die Werte g‘(x,y) eine lineare Funktion der Werte g(x,y) sind.
g ( x, y ) g ( x, y ) h( x, y ) i 1 j 1
i 1 j 1
i 1 j 1
i 1 j 1
g ( x i, y j ) h(i, j ) g ( x i, y j ) h(i, j )
Filterung
7
Faltung
Im Unterschied zur Korrelation erfolgt eine Spiegelung (in der Praxis werden die Filterkoeffizienten gespiegelt). Für symmetrische Filter sind Faltung und Korrelation identisch. Faltung ist linear, weil die Werte g‘(x,y) eine lineare Funktion der Werte g(x,y) sind.
g ( x, y ) g ( x, y ) h( x, y ) i 1 j 1
i 1 j 1
i 1 j 1
i 1 j 1
g ( x i, y j ) h(i, j ) g ( x i, y j ) h(i, j )
1D-Beispiel:
g(x)
g0
g1
g2
g3
g4
h(x)
Faltung: h(x) spiegeln, schrittweise verschieben und jeweiliges Resultat g‘ berechnen
Filterung
g0 h2
h1
h0
g1
h1
g2
h2
g3
g4
h0 8
Beispiele für 1D-Faltung „Verzögerung“ um zwei Einheiten: 10 20 30 40
gx hx
0
g*h
Filterung
0
1
0
hx 0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10 20 30 40
0
0
0
0
0
0
0
0
0
0
0
0 0
0
9
Beispiele für 1D-Faltung „Verzögerung“ um zwei Einheiten: 10 20 30 40
gx hx
0
0
1
0
0
0
0
1
hx
0
0
0
0
0
0
0
0
0
0
0
0
10 20 30 40
0
0
0
0
0
0
0
0
0
0
0
10 20 30 40 1
g*h
Filterung
0
0
0
0
0
Identität plus „Verzögerung“ um fünf Einheiten: hx
gx
0
0 0
g*h
hx
0
0
0
1 0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
10 20 30 40 10 20 30 40
10
Beispiele für Faltung (symmetrische Filter) hx
alle Koeffizienten = 1:
gx 1
g*h Filterung
10
1
1
1
20
30
40
0
0
0
0
1 0
1 0
1 0
1
1
0
0
1
10
11
Beispiele für Faltung (symmetrische Filter) hx
alle Koeffizienten = 1:
gx 1
g*h Filterung
10
20
1
1
1
1
1
1
1
1
1
10
30
30
40
0
0
0
0
1 0
1 0
1 0
1
1
0
0
12
Beispiele für Faltung (symmetrische Filter) hx
alle Koeffizienten = 1:
gx 1
g*h Filterung
10
20
30
1
1
1
1
1
1
1
1
1
1
1
1
1
1
10
30
60
40
0
0
0
0
1 0
1 0
1 0
1
1
0
0
13
Beispiele für Faltung (symmetrische Filter) hx
alle Koeffizienten = 1:
gx 1
g*h Filterung
10
20
30
40
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
10
30
60
100
0
0
0
0
1 0
1 0
1 0
1
1
0
0
14
Beispiele für Faltung (symmetrische Filter) hx
alle Koeffizienten = 1:
gx 1
g*h Filterung
10
20
30
40
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
10
30
60
100
100
0
0
0
1 0
1 0
1 0
1
1
0
0
15
Beispiele für Faltung (symmetrische Filter) hx
alle Koeffizienten = 1:
gx 1
g*h Filterung
10
20
30
40
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
30
60
100
100
90
10
0
0
1 0
1 0
1 0
1
1
0
0
16
Beispiele für Faltung (symmetrische Filter) hx
alle Koeffizienten = 1:
gx 1
g*h Filterung
10
20
30
40
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
60
100
100
90
70
10
30
0
1 0
1 0
1 0
1
1
0
0
17
Beispiele für Faltung (symmetrische Filter) hx
alle Koeffizienten = 1:
gx 1
g*h Filterung
10
20
30
40
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
100
100
90
70
40
10
30
60
1 0
1 0
1 0
1
1
0
0
18
Beispiele für Faltung (symmetrische Filter) alle Koeffizienten = 1:
hx
n
gx 1
m
10
20
1
1
1
1
1
1
1
1
1
1
1
1
1
30
40
0
0
0
0
1 0
1 0
1 0
1
1
0
0
Verbreiterung:
1
Signallänge n 1
g*h Filterung
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
100
100
90
70
40
10
30
60
Filterlänge m Ergebnislänge: m + n - 1
0
0
0
0
0
19
Lineare Filter in 2D In der Bildverarbeitung sind die Filtermasken zweidimensional: meist quadratisch mit ungerader Pixelanzahl (3x3, 5x5, 7x7,…) Die Maske wird schrittweise über das Bild g(x,y) geschoben für das im Eingangsbild g(x,y) in der Mitte unter der Maske liegende Pixel wird der Wert im Ausgangsbild g‘(x,y) berechnet für jedes Pixel g‘(x,y) im Ausgangsbild wird die Faltung durchgeführt!
Filterung
20
Lineare Filter in 2D In der Bildverarbeitung sind die Filtermasken zweidimensional: meist quadratisch mit ungerader Pixelanzahl (3x3, 5x5, 7x7,…) Die Maske wird schrittweise über das Bild g(x,y) geschoben für das im Eingangsbild g(x,y) in der Mitte unter der Maske liegende Pixel wird der Wert im Ausgangsbild g‘(x,y) berechnet für jedes Pixel g‘(x,y) im Ausgangsbild wird die Faltung durchgeführt! 1. Multiplikation pro Pixel
h
Faltungsoperator
g ( x, y ) g ( x, y ) h( x, y ) i 1 j 1
y y x
i 1 j 1
g x
Filterung
g ( x i, y j ) h(i, j )
g‘
Faltung mit 3x3-Maske 21
Lineare Filter in 2D In der Bildverarbeitung sind die Filtermasken zweidimensional: meist quadratisch mit ungerader Pixelanzahl (3x3, 5x5, 7x7,…) Die Maske wird schrittweise über das Bild g(x,y) geschoben für das im Eingangsbild g(x,y) in der Mitte unter der Maske liegende Pixel wird der Wert im Ausgangsbild g‘(x,y) berechnet für jedes Pixel g‘(x,y) im Ausgangsbild wird die Faltung durchgeführt! 1. Multiplikation pro Pixel
h
Faltungsoperator 2. Summe aller Produkte
g ( x, y ) g ( x, y ) h( x, y ) i 1 j 1
y y x
i 1 j 1
g x
Filterung
g ( x i, y j ) h(i, j )
g‘
Faltung mit 3x3-Maske 22
Randbereich des Bildes In den Randbereichen ragt die Maske h über das Bild g hinaus
Lösungsmöglichkeiten z.B.:
g‘(Rand) = g(Rand), g‘(Rand) = 0, g fortsetzen (z.B. Spiegelung)
Filterung
23
Themen heute
Faltung & Eigenschaften linearer Filter Tiefpassfilter Hochpassfilter
Nicht-lineare Filter
Filterung
24
Tiefpassfilter Tiefpassfilter dämpfen die hochfrequenten Teile des Bildinhaltes.
visueller Eindruck des Bildes wird weicher, Grauwert-Kanten werden verwischt, Details und Rauschen werden abgeschwächt, Achtung: In homogenen Bereichen haben Glättungsfilter keine Auswirkung.
Original
Filterung
Nach Glättung
25
Mittelwertfilter (mean, average, box filter) Der einfachste Glättungsfilter ist der Mittelwertfilter, Rechteckfilter, Oder auch Boxfilter mit einer 3 x 3 Filtermaske.
1 1 1 i 1 j 1 1 1 h( x, y ) 1 1 1 g ( x, y ) g h g ( x i, y j ) 9 9 i 1 j 1 1 1 1
Filterung
26
Mittelwertfilter (mean, average, box filter) Der einfachste Glättungsfilter ist der Mittelwertfilter, Rechteckfilter, Oder auch Boxfilter mit einer 3 x 3 Filtermaske.
1 1 1 i 1 j 1 1 1 h( x, y ) 1 1 1 g ( x, y ) g h g ( x i, y j ) 9 9 i 1 j 1 1 1 1 g (93,15)
g (93,15) Filterung
1 113 116 104 99 101 125 0 107 105 96.7 97 9 27
Mittelwertfilter Faltung mit: 0
0
0
0
0
9
9
9
9
9
0
0
0
0
0
9
9
9
9
9
0
0
0
0
0
9
9
9
9
9
0
0
0
0
0
9
9
9
9
9
0
0
0
0
0
9
9
9
9
9
0
0
0
0
0
9
9
9
9
9
0
0
0
0
0
9
9
9
9
9
0
0
0
0
0
9
9
9
9
9
Filterung
1 1 1 1 1 1 1 9 1 1 1
28
Mittelwertfilter Faltung mit: 0
0
0
0
0
9
9
9
9
9
0
0
0
0
0
9
9
9
9
0
0
0
0
0
9
9
9
0
0
0
0
0
9
9
0
0
0
0
0
9
0
0
0
0
0
0
0
0
0
0
0
0
0
1 1 1 1 1 1 1 9 1 1 1
(Annahme: periodische Fortsetzung über Rand)
0
0
0
0
3
6
9
9
9
9
9
0
0
0
0
3
6
9
9
9
9
9
9
0
0
0
0
3
6
9
9
9
9
9
9
9
0
0
0
0
3
6
9
9
9
9
9
9
9
9
0
0
0
0
3
6
9
9
9
9
9
9
9
9
9
0
0
0
0
3
6
9
9
9
9
0
9
9
9
9
9
0
0
0
0
3
6
9
9
9
9
0
9
9
9
9
9
0
0
0
0
3
6
9
9
9
9
Verschleifung der Grauwerte im Übergangsbereich (Kante) Filterung
29
Mittelwertfilter Periodische Störung mit einer Wellenlänge von 3 Pixeln (Annahme: periodische Fortsetzung über Rand) 9 0 9 9 0 9 9 0 9 9 9 0 9 9 0 9 9 0 9 9 9 0 9 9 0 9 9 0 9 9 9 0 9 9 0 9 9 0 9 9
1 1 1 1 1 1 1 9 1 1 1
9 0 9 9 0 9 9 0 9 9 9 0 9 9 0 9 9 0 9 9 9 0 9 9 0 9 9 0 9 9 9 0 9 9 0 9 9 0 9 9
Filterung
30
Mittelwertfilter Periodische Störung mit einer Wellenlänge von 3 Pixeln (Annahme: periodische Fortsetzung über Rand) 9 0 9 9 0 9 9 0 9 9 9 0 9 9 0 9 9 0 9 9 9 0 9 9 0 9 9 0 9 9 9 0 9 9 0 9 9 0 9 9
1 1 1 1 1 1 1 9 1 1 1
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
9 0 9 9 0 9 9 0 9 9
6 6 6 6 6 6 6 6 6 6
9 0 9 9 0 9 9 0 9 9
6 6 6 6 6 6 6 6 6 6
9 0 9 9 0 9 9 0 9 9
6 6 6 6 6 6 6 6 6 6
9 0 9 9 0 9 9 0 9 9
6 6 6 6 6 6 6 6 6 6
Filterung
31
Mittelwertfilter Periodisches Muster mit einer Wellenlänge von 2 Pixeln 0 9 0 9 0 9 0 9 0 9
0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9
1 1 1 1 1 1 1 9 1 1 1
0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9
Filterung
32
Mittelwertfilter Periodisches Muster mit einer Wellenlänge von 2 Pixeln 0 9 0 9 0 9 0 9 0 9
0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9
1 1 1 1 1 1 1 9 1 1 1
6 3 6 3 6 3 6 3 6 3
6 3 6 3 6 3 6 3 6 3 6 3 6 3 6 3 6 3 6 3 6 3 6 3 6 3 6 3 6 3
0 9 0 9 0 9 0 9 0 9
6 3 6 3 6 3 6 3 6 3
0 9 0 9 0 9 0 9 0 9
6 3 6 3 6 3 6 3 6 3
0 9 0 9 0 9 0 9 0 9
6 3 6 3 6 3 6 3 6 3
0 9 0 9 0 9 0 9 0 9
6 3 6 3 6 3 6 3 6 3
Unvollständige Eliminierung des Musters, lediglich Abschwächung des Signals Filterung
33
Berechnungsaufwand der Faltung
Direkte Berechnung eines beliebigen Filters Maske der Größe nhx x nhx, für jedes Pixel nhx2 Multiplikationen nhx2 -1 Additionen quadratischer Anstieg des Aufwands
a00 a 10 a20
a01 a02 a11 a12 a21 a22
Multiplikationen sind aufwendiger (Kaskade von Additionen) möglichst vermeiden Separierbare Filter – Assoziativgesetzes:
– linearer Anstieg mit nhx 2nhx Multiplikationen 2nhx-2 Additionen
Filterung
g ( x, y) h( x, y) g ( x, y) h( x) h( y) a00 a 10 a20
a01 a02 a11 a12 a x 0 a21 a22
a x1
ay0 a x 2 a y1 a y2 34
Berechnungsaufwand für den Mittelwertfilter I
Direkte Berechnung des Mittelwertfilters günstige Auswirkungen der Einsen: Nur eine Multiplikation (Division durch Normierungsfaktor) nhx2 -1 Additionen
Der Mittelwertfilter ist separierbar Linearer Anstieg mit nhx 1 Division 4 Additionen (2nhx-2)
1 1 1 1 1 1 1 9 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 9 9 1 1 1 1
Vorgehen: erst in einer Dimension Falten, auf Ergebnis zweite 1D-Faltung anwenden
Filterung
35
Berechnungsaufwand für den Mittelwertfilter II Zahlenbeispiel
g
1. Faltung zeilenweise
g (93,14) 113 116 104 333 g (93,15) 99 101 125 325 g (93,16) 0 107 105 212 Die Zeilensummen werden für 3 Pixel verwendet 2 Additionen pro Pixel
Filterung
36
Berechnungsaufwand für den Mittelwertfilter II Zahlenbeispiel
g
1. Faltung zeilenweise
g (93,14) 113 116 104 333 g (93,15) 99 101 125 325 g (93,16) 0 107 105 212 Die Zeilensummen werden für 3 Pixel verwendet 2 Additionen pro Pixel 2. Faltung spaltenweise (2 Additionen + 1 Division pro Pixel)
1 g (93,15) 333 325 212 96.7 97 9 Um Rundungsfehler klein zu halten, sollte die Division zuletzt erfolgen Filterung
37
Mittelwertfilter auf Farbbildern Glättung aller HSI-Kanäle separat verändert die Farbe
deshalb: nur Glättung des Intensitätskanals oder Glättung aller RGB-Kanäle separat
38 Filterung
38
Nachteile des Mittelwertfilters Rechteckfilter sind keine idealen Tiefpassfilter:
Übertragungsfunktion
Der Mittelwertfilter ist rotationsvariant - ungleichmäßige Unterdrückung hochfrequenter Bildanteile - Richtungsabhängigkeit im Ortsfrequenzraum - Zusätzliche Störungen können verursacht werden Filterung
39
Vergleich von Mittelwert- und Gaußoperator Ortsbereich
Frequenzbereich
Mittelwertoperator
Nachteile: rotationsvariant, unterdrückt nicht alle hohen Frequenzanteile Vorteil: Implementierung per integral images möglich (schnell)
Gaußoperator
G ( x, y )
1 e 2 2
x2 y2 2 2
Vorteile: rotationsinvariant, unterdrückt alle hohen Frequenzanteile Nachteil: nur in Näherungsform diskret implementierbar Binomialfilter Filterung 40
40
Binomialfilter Eigenschaften: Diskrete Approximation des Gaußfilters 2D-Filter: separierbar in zwei 1D-Funktionen Rekursive Implementierung möglich 1D-Binomialkoeffizenten gehen aus dem Pascalschen Dreieck hervor
b2
b2, 2
b4 b4, 4 Pascalsches Dreieck
Filterung
1 256
1 2 1 1 2 4 2 16 1 2 1 1 4 6 4 4 16 24 16 6 24 36 24 4 16 24 16 1 4 6 4
1 4 6 4 1
41
Separierbarkeit des Binomialfilters
b4, 4
1 256
1
4
6
4
4 16 24 16 6 24 36 24 4 16 24 16 1
4
6
4
1 1 4 4 1 1 6 1 4 6 4 1 6 16 16 4 4 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 256 1 1 1 1 Analog zu Mittelwertfilter: Abgesehen von Normierungsfaktor keine Multiplikationen erforderlich, sondern nur noch Additionen Filterung
42
Separierbarkeit des Binomialfilters: Zahlenbeispiel 3x3 1 2 1 1 1 1 1 g g b2 g 2 4 2 g 1 1 1 1 16 16 1 1 1 2 1
g
Filterung
43
Separierbarkeit des Binomialfilters: Zahlenbeispiel 3x3 1 2 1 1 1 1 1 g g b2 g 2 4 2 g 1 1 1 1 16 16 1 1 1 2 1 113 116 104 113 116 116 104 229 220 g 1 1 99 101 125 1 1 99 101 101 125 200 226 0 107 105 0 107 107 105 107 212 229 220 449 g g 1 1 1 1 200 226 426 107 212 319 1 449 426 875 1 426 319 745
g 1 1 1 1
1 1 1 1 g 1 1 1 1 (875 745) 101.25 101 16 1 1 16 Filterung
44
Separierbarkeit des Binomialfilters: Zahlenbeispiel 3x3 1 2 1 1 1 1 1 g g b2 g 2 4 2 g 1 1 1 1 16 16 1 1 1 2 1 113 116 104 113 116 116 104 229 220 g 1 1 99 101 125 1 1 99 101 101 125 200 226 0 107 105 0 107 107 105 107 212 229 220 449 g g 1 1 1 1 200 226 426 107 212 319 1 449 426 875 1 426 319 745
g 1 1 1 1
1 1 1 1 g 1 1 1 1 (875 745) 101.25 101 16 1 1 16 Filterung
45
Separierbarkeit des Binomialfilters: Zahlenbeispiel 3x3 1 2 1 1 1 1 1 g g b2 g 2 4 2 g 1 1 1 1 16 16 1 1 1 2 1 113 116 104 113 116 116 104 229 220 g 1 1 99 101 125 1 1 99 101 101 125 200 226 0 107 105 0 107 107 105 107 212 229 220 449 g g 1 1 1 1 200 226 426 107 212 319 1 449 426 875 1 426 319 745
g 1 1 1 1
1 1 1 1 g 1 1 1 1 (875 745) 101.25 101 16 1 1 16 Filterung
46
Separierbarkeit des Binomialfilters: Zahlenbeispiel 3x3 1 2 1 1 1 1 1 g g b2 g 2 4 2 g 1 1 1 1 16 16 1 1 1 2 1 113 116 104 113 116 116 104 229 220 g 1 1 99 101 125 1 1 99 101 101 125 200 226 0 107 105 0 107 107 105 107 212 229 220 449 g g 1 1 1 1 200 226 426 107 212 319 1 449 426 875 1 426 319 745
g 1 1 1 1
1 1 1 1 g 1 1 1 1 (875 745) 101.25 101 16 1 1 16 Filterung
47
Binomialfilter: verschiedene Sigmas
original Filterung
sigma =1
sigma =2
sigma =3 48
Themen heute
Faltung & Eigenschaften linearer Filter Tiefpassfilter Hochpassfilter
Nicht-lineare Filter
Filterung
49
Hochpassfilter • Unterdrückung des Gleichanteils (homogene Bereiche werden nicht extrahiert hohe Frequenzen „passieren“ Filter)
• Summe der Koeffizienten = Null • feine Bilddetails werden hervorgehoben
• Grauwertübergange (Kanten) werden verstärkt bzw. extrahiert Kantendetektoren sind typische Hochpassfilter
Filterung
50
Kantendetektion Grauwerte 200
Kante = starke geradlinige
100
Änderung des Grauwerts g(x)
0 -30
-20
-10
0
10
20
30
10
20
30
10
20
30
erste Ableitung 20 10 0 -30
-20
-10
0 zweite Ableitung
5 0 -5 -30
Filterung
-20
-10
0
51
Kantendetektion Grauwerte 200
Kante = starke geradlinige
100
Änderung des Grauwerts g(x)
0 -30
-20
-10
0
10
20
30
erste Ableitung 20
Gradientenoperator: 1. Ableitung g‘(x)
10
Suche nach Maxima 0 -30
-20
-10
0
10
20
30
10
20
30
zweite Ableitung 5 0 -5 -30
Filterung
-20
-10
0
52
Kantendetektion Grauwerte 200
Kante = starke geradlinige
100
Änderung des Grauwerts g(x)
0 -30
-20
-10
0
10
20
30
erste Ableitung 20
Gradientenoperator: 1. Ableitung g‘(x)
10
Suche nach Maxima 0 -30
-20
-10
0
10
20
30
zweite Ableitung 5
Laplace-Operator: 2. Ableitung g‘‘(x)
0 -5 -30
Filterung
Suche nach Nulldurchgang -20
-10
0
10
20
30
(Wendepunkt) 53
Gradienten-basierte Kantendetektion •
Diskrete Approximation des Gradienten durch Differenzbildung
f (x)
x f (x)
x
•
Damit das Ergebnis aufs Raster fällt, Differenz der Nachbarpixel nehmen f (x)
f ( x) f ( x 1) f ( x 1) f ( x) x 2 0.5 f ( x 1) f ( x 1) x-1 Filterung
x
x+1 54
Kantendetektion: Prewitt-Operator f ( x) 0.5 f ( x 1) f ( x 1)
f ( y) 0.5 f ( y 1) f ( y 1
hx 0.5 1 0 1
1 hy 0.5 0 1
Differenzbildungen sind anfällig für Rauschen im Bild, deshalb Nutzung größerer Filtermasken wie hier beim Prewitt-Operator:
hPREWITT _ x
Filterung
1 1 1 6 1
0 0 0
1 1 1
hPREWITT _ y
1 1 1 1 0 0 0 6 1 1 1 55
Prewitt-Operator (x-Richtung) Die vertikale Kante liegt hier auf einem Zwischengitterplatz. Der Operator liefert eine zwei Pixel breite Linie, je ein Pixel links und rechts von der Kante mit
1 1 hPREWITT _ x 1 6 1 0 0 0 0 0 8 8 8 8 8
jeweils dem halben Gradienten
0 0 0
1 1 1 0 0 0 0 4 4 0 0 0 0
0
0
0
0
0
8
8
8
8
8
0
0
0
0
4 4
0
0
0
0
0
0
0
0
0
8
8
8
8
8
0
0
0
0
4 4
0
0
0
0
0
0
0
0
0
8
8
8
8
8
0
0
0
0
4 4
0
0
0
0
0
0
0
0
0
8
8
8
8
8
0
0
0
0
4 4
0
0
0
0
0
0
0
0
0
8
8
8
8
8
0
0
0
0
4 4
0
0
0
0
0
0
0
0
0
8
8
8
8
8
0
0
0
0
4 4
0
0
0
0
0
0
0
0
0
8
8
8
8
8
0
0
0
0
4 4
0
0
0
0
Filterung
56
Prewitt-Operator (x-Richtung)
hPREWITT _ x 0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
1 1 1 6 1
0 0 0
1 1 1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9
9
9
9
0
0
0
0
0
0
0
0
0
0
9
9
9
9
9
0
0
0
0
0
0
0
0
0
0
9
9
9
9
9
9
0
0
0
0
0
0
0
0
0
0
9
9
9
9
9
9
0
0
0
0
0
0
0
0
0
0
Richtungsoperatoren heben diejenigen Strukturen hervor, die in Arbeitsrichtung verlaufen, alle anderen werden kaum oder gar nicht detektiert. Filterung
57
Sobel-Operator
bessere Robustheit bezüglich Rauschen durch unterschiedliche Gewichte der einzelnen Differenzen
Der Filter nach Sobel Binomialkoeffizenten
hSOBEL _ x 1 1 2 8 1
Filterung
verwendet
die
b2-
Pascalsches Dreieck
hSOBEL _ y
0 0 0
1 2 1
1 2 1 1 0 0 0 8 1 2 1
58
Sobel-Operator: Betrag und Richtung des Gradienten g SOBEL _ x g SOBEL _ MAG
2 2 g SOBEL _ MAG g SOBEL g _x SOBEL _ y
g SOBEL _ y Filterung
59
Sobel-Operator: Betrag und Richtung des Gradienten g SOBEL _ x g SOBEL _ MAG
2 2 g SOBEL _ MAG g SOBEL g _x SOBEL _ y
g SOBEL _ DIR
g SOBEL _ y Filterung
g SOBEL _ y arctan g SOBEL _ x
g SOBEL _ DIR 60
Laplace-Operator Alternative zu den Gradientenfiltern (1. Ableitung) Suche nach den Wendepunkten der Funktion Nulldurchgänge der zweiten Ableitung
f (x)
x f (x)
x
f (x)
x
Filterung
61
Laplace-Operator Der Laplace-Operator berechnet die Summe der zweiten partiellen Ableitung einer kontinuierlichen skalaren Funktion g(x,y) für die beiden Variablen x und y:
2 g ( x, y) 2 g ( x, y) g ( x, y) 2 x y 2 Als diskrete Realisierung der 2. Ableitung wird die Differenz der Differenz benachbarter Pixel pro Zeile und Spalte bestimmt:
2 g ( x, y ) g ( x 1, y ) g ( x, y ) g ( x, y ) g ( x 1, y ) 2 x ( x 1) x x ( x 1) g ( x 1, y ) 2 g ( x, y ) g ( x 1, y ) 2 g ( x, y ) g ( x, y 1) 2 g ( x, y ) g ( x, y 1) 2 y Filterung
62
Laplace-Operator Filtermasken in x- und y-Richtung können addiert werden 0 0 h hx hy 1 2 0 0
0 0 1 1 0 2 0 0 1
0 0 1 0 1 4 0 0 1
0 1 0
Neben den erwünschten Kanten wird auch Rauschen hervorgehoben Laplace-Filter ist sehr rauschanfällig
0 1 0 h1 1 4 1 0 1 0
Filterung
1 1 1 h2 1 8 1 1 1 1
63
Laplace-Operator, Bildschärfung Bild wird durch abgeschwächten Laplace-Anteil geschärft.
0 0 0 0 1 0 0 1 0 1 1 h1 0 1 0 1 4 1 1 8 1 4 4 0 0 0 0 1 0 0 1 0 „Bild“
Originalbild Filterung
+
Laplace
=
1 1 1 1 h2 1 16 1 8 1 1 1
Schärfung
nach Filterung mit h1
nach Filterung mit h2 64
Themen heute
Faltung & Eigenschaften linearer Filter Tiefpassfilter Hochpassfilter
Nicht-lineare Filter
Filterung
65
Nachteile linearer Glättungsfilter
Verschleifung von Kanten und Linien
Salz-und-Pfeffer-Rauschen
nach Mittelwertfilter
Salz-und-PfefferRauschen wird nicht beseitigt
Filterung
66
Rangordnungsoperatoren
Innerhalb einer Filtermaske werden die Grauwerte von niedrig zu hoch sortiert oder umgekehrt. Der neue Grauwert wird aufgrund der Grauwertabfolge innerhalb der Filtermaske bestimmt. keine neuen Werte (keine Rundung) Filter ist nichtlinear, nicht kommutativ, nicht assoziativ
98 91 19 18 19
Rangfolge: {13, 16, 22, 31, 36, 39, 57, 69, 96}
92 96 57 16 10
niedrigster Rang
88 69 31 22 11
mittlerer Rang
höchster Rang
42 39 36 13 15 35 33 32 17 12
Filtermaske
Bild Filterung
67
Rangordnungsoperatoren Die Auswahl des Rangs (Stelle an der der Grauwert entnommen wird) hängt vom Filterzweck ab: Minimum-Filter: niedrigster Rang
niedrigster Rang
98 91 19 18 19 92 96 57 16 10
Rangfolge: {13, 16, 22, 31, 36, 39, 57, 69, 96}
88 69 31 22 11 42 39 36 13 15 35 33 32 17 12
13
Minimum Filterung
68
Rangordnungsoperatoren Die Auswahl des Rangs (Stelle an der der Grauwert entnommen wird) hängt vom Filterzweck ab: Minimum-Filter: niedrigster Rang Median-Filter: mittlerer Rang
niedrigster Rang
mittlerer Rang
98 91 19 18 19 92 96 57 16 10
Rangfolge: {13, 16, 22, 31, 36, 39, 57, 69, 96}
88 69 31 22 11 42 39 36 13 15 35 33 32 17 12
Filterung
13
36
Minimum
Median 69
Rangordnungsoperatoren Die Auswahl des Rangs (Stelle an der der Grauwert entnommen wird) hängt vom Filterzweck ab: Minimum-Filter: niedrigster Rang Median-Filter: mittlerer Rang Maximum-Filter: höchster Rang
niedrigster Rang
mittlerer Rang
höchster Rang
98 91 19 18 19 92 96 57 16 10
Rangfolge: {13, 16, 22, 31, 36, 39, 57, 69, 96}
88 69 31 22 11 42 39 36 13 15 35 33 32 17 12
Filterung
13
36
96
Minimum
Median
Maximum 70
Minimum-/Maximum-Filter Originalbild
Minimum-Filterung (5x5 )
Filterung
Maximum-Filterung (5x5)
71
Median-Filter Beseitigung von isolierten Störpixeln (sog. Salz-und-Pfeffer-Rauschen) Glättung bei gleichzeitiger Erhaltung der Kanten Eingangsbild mit Salz-und-Pfeffer-Rauschen
Filterung
Median-Filterung (3x3)
72
Vergleich: Mittelwert- und Median-Filter Originalbild
Medianfilterung (3x3)
Differenzbild (Original- Ergebnis)
Originalbild + Salz-und-Pfeffer
Filterung
Mittelwertfilter (3x3)
Differenzbild (Original- Ergebnis)
73
Vergleich: Mittelwert- und Median-Filter Eingangsbild mit Salz-und-Pfeffer-Rauschen Mittelwert-Filterung Median-Filterung
Filterung
74
Median-Filter Medianfilter mit größeren Masken werden auch allgemein zur Glättung verwendet:
je größer die Stichprobe (Filtermaske), desto
eher entspricht Median dem Mittelwert
Details verschwinden (z.B. 3 Pixel dicke Linie bei 7x7 Fenster)
Original
Mittelwert 7x7
Median 7x7
Artefakt an Ecke Filterung
75
Gestutzter Mittelwert-Filter (trimmed mean filter) Kombination aus linearem Filter und Rangordnungsoperator macht den Mittelwert-Filter robuster gegen Ausreißer Prozessierungsabfolge: 1. Ordne die Grauwerte der Filtermaske der Grösse nach 2. Lösche die kleinsten und grössten Grauwerte 3. Bestimme den Mittelwert der übrigen Grauwerte Beispiel: 3x3 Filtermaske (insgesamt 9 Grauwerte) mit der Grösse nach sortierten Grauwerten
x1 x2 x3 ... x9 Abschneiden der zwei grössten und der zwei kleinsten Grauwerte und Mittelung der übrigen Grauwerte
x3 x4 x5 x6 x7 5 Filterung
76
Gestutzter Mittelwert-Filter (trimmed mean filter) Die Anzahl der zu stutzenden/zu vernachlässigenden Werte hängt von der Zahl der Ausreisser ab je mehr Ausreisser im Bild, desto mehr Stellen müssen gestutzt werden Beispiel:
die zwei kleinsten zu löschenden Ränge
Rangfolge: {13,
16,
22,
Mittelwert der mittleren Ränge
31,
36,
39,
die zwei größten zu löschenden Ränge
57,
69,
96}
98 91 19 18 19 92 96 57 16 10 88 69 31 22 11
37
42 39 36 13 15 35 33 32 17 12
gestutzter Mittelwert Filterung
77