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  hx  hy   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