Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
3. Szűrés képtérben Kató Zoltán Képfeldolgozás és Számítógépes Grafika tanszék SZTE (http://www.inf.u-szeged.hu/~kato/teaching/)
2
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Kép transzformációk típusai • Kép értékkészletének (radiometriai információ) átalakítása:
J (i, j ) f ( I , (i, j ))
• Kép értelmezési tartományának geometriai transzformációja (warping):
J (i, j ) I (ti (i, j ), t j (i, j )) • Mind az értékkészlet mind pedig az értelmezési tartomány átalakítása:
J (i, j ) f ( I , (ti (i, j ), t j (i, j )))
3
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Értékkészlet transzformációk • Lokális: Az új pixelérték a kiindulási pixel adott méretű S környezetének pixelértékeitől függ
pl. konvolúció adott méretű maszkkal Ha függ a pozíciótól is, akkor lokálisan adaptív
• Globális: Ha S=teljes kép • Pont operáció: ha S egyetlen pixelből áll. Lokális operáció (pl. szűrőzés): j
j
J(x,y) = f ({I(u,v) | (u,v) є S(i,j)}) i
i
S(i.j) lokális környezet
(i,j) körül Input: I=[I(i,j)]
Output: J =[J(i,j)]
4
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Szenzor zaj • Tipikusan (additív) Poisson
Becsapódó fotonok/elektronok/… számától (k) és átlagától (λ) függő
• Nagyszámú foton (additív) Gauss zaj • Speckle zaj radar/ultrahang képeken: multiplikatív Gauss zaj
5
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Képi zaj • só/bors Zajmentes kép Só/bors zaj
• Gauss Gauss zaj (σ=15)
• Poisson Poisson
6
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Gauss zaj szűrése • Hogyan tudjuk a zaj mértékét megbecsülni és az ideális intenzitásértéket helyreállítani?
I ' (i, j ) I (i, j ) N (0, )
Ha több kép áll rendelkezésünkre, akkor minden pixelhez több “mérés” áll rendelkezésünkre Mivel az additív zaj középértéke 0, ezért egyszerű átlagolással kaphatunk a várható értékre (ideális intenzitásérték) vonatkozó becslést.
7
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Gauss zaj szűrése átlagoló szűrővel • A gyakorlatban csak egyetlen kép áll rendelkezésünkre. • Átlagoljuk a pixelek egy kis környezetét
Feltételezzük, hogy a kép lokálisan homogén és a zaj pixelenként független (korrelálatlan).
Átlagoló szűrő
• Megvalósíthatjuk kereszt korreláció () vagy konvolúció () segítségével.
8
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Mozgó átlag
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
90
90
90
90
90
0
0
0
0
0
90
90
90
90
90
0
0
0
0
0
90
90
90
90
90
0
0
0
0
0
90
0
90
90
90
0
0
0
0
0
90
90
90
90
90
0
0
0
0
0
0
0
0
0
0
0
0
0
0
90
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Source: S. Seitz
9
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Mozgó átlag
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
90
90
90
90
90
0
0
0
0
0
90
90
90
90
90
0
0
0
0
0
90
90
90
90
90
0
0
0
0
0
90
0
90
90
90
0
0
0
0
0
90
90
90
90
90
0
0
0
0
0
0
0
0
0
0
0
0
0
0
90
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10
Source: S. Seitz
10
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Mozgó átlag
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
90
90
90
90
90
0
0
0
0
0
90
90
90
90
90
0
0
0
0
0
90
90
90
90
90
0
0
0
0
0
90
0
90
90
90
0
0
0
0
0
90
90
90
90
90
0
0
0
0
0
0
0
0
0
0
0
0
0
0
90
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10
20
Source: S. Seitz
11
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Mozgó átlag
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
90
90
90
90
90
0
0
0
0
0
90
90
90
90
90
0
0
0
0
0
90
90
90
90
90
0
0
0
0
0
90
0
90
90
90
0
0
0
0
0
90
90
90
90
90
0
0
0
0
0
0
0
0
0
0
0
0
0
0
90
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10
20
30
Source: S. Seitz
12
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Mozgó átlag
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
90
90
90
90
90
0
0
0
0
0
90
90
90
90
90
0
0
0
0
0
90
90
90
90
90
0
0
0
0
0
90
0
90
90
90
0
0
0
0
0
90
90
90
90
90
0
0
0
0
0
0
0
0
0
0
0
0
0
0
90
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10
20
30
30
Source: S. Seitz
13
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Mozgó átlag
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
10
20
30
30
30
20
10
0
0
0
90
90
90
90
90
0
0
0
20
40
60
60
60
40
20
0
0
0
90
90
90
90
90
0
0
0
30
60
90
90
90
60
30
0
0
0
90
90
90
90
90
0
0
0
30
50
80
80
90
60
30
0
0
0
90
0
90
90
90
0
0
0
30
50
80
80
90
60
30
0
0
0
90
90
90
90
90
0
0
0
20
30
50
50
60
40
20
0
0
0
0
0
0
0
0
0
0
10
20
30
30
30
30
20
10
0
0
90
0
0
0
0
0
0
0
10
10
10
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Source: S. Seitz
14
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Az átlagoló szűrő tulajdonságai • Simítás: a képpontok közelebb kerülnek környezetük átlagához, azaz a kép „simább” lesz, • a szűrt kép intenzitásértékei a kiindulási kép intenzitástartományában maradnak,
• lineáris operátor • Csökkenti a zajt, DE
Elmossa az éleket, homályossá teszi a képet.
1
1
1
1
1
1
1
1
1
Átlagoló szűrő
15
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Korrelációs szűrők • Szűrés során minden pixel értéket a szomszédainak lineáris kombinációjával cserélünk le. • A H(u,v) szűrő mag (kernel) vagy maszk adja meg a szomszédság méretét és a súlyokat.
J (i, j )
U
V
H (u, v) I (i u, j v)
u U v V
I (i, j ) H (u, v) J (i, j ) 1
1
1
1
1
1
1
1
1
Átlagoló szűrő
16
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Konvolúciós szűrők
J (i, j ) F (u, v) I (i, j )
• Tükrözzük a maszkot, majd számoljunk kereszt korrelációt
J (i, j )
U
V
F (u, v) I (i u, j v)
u U v V
• Képfeldolgozásban a szűrő tipikusan szimmetrikus
Nincs különbség a korreláció és konvolúció között
I I (i, j ) M N - es F F (u, v) (2 K 1) (2 K 1) (négyzetes) és F (u, v) F (u,v) (szimmetrikus)
F
I
17
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Példa
1/10 1/5 1/10
Az F maszk mérete: 3x3 (K=1)
A J=F*I konvolvált kép adott pontjának számítása: 1·1/10+3·1/10+ 6·1/10+ 8·1/10+10·1/5+ 2·1/10+ 9·1/10+4·1/10+ 7·1/10= 6
1/10 1/10 1/10 6
5 1
2 7
0
1
0 9
4
5
3
4
1
8
9
1/10 1/10 1/10
6 4
8 2
0 1
6
7 6
3 2 7
4 5
2
10
8 9
3
8
1
1
6 2
8 3
8
0
0 1
6
6 5
4 9
5 0
3
1
8
3 7
4
9
2 8
9
18
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
A konvolúció tulajdonságai
f g g f a ( f g ) (a f ) g f (a g ) f ( g h) ( f g ) h f ( g h) ( f g ) ( f h) ( f g )' f ' g f g '
19
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Gauss szűrő • Egyenlő súly helyett célszerűbb a közelebbi pixeleket nagyobb súllyal számolni
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0 90 90 90 90 90 0
0
0
0
0 90 90 90 90 90 0
0
0
0
0 90 90 90 90 90 0
0
0
0
0 90 0 90 90 90 0
0
0
0
0 90 90 90 90 90 0
0
0
0
0
0
0
0
0
0
0
0
0
0 90 0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2 változós, 0 középértékű Gauss függvény közelítése: 1
2
1
2
4
2
1
2
1
Source: S. Seitz
20
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Gauss szűrő • A szűrő paraméterei:
σ: a Gauss függvény szórása megadja, hogy a középponttól távolodva milyen gyorsan csökkennek a súlyok. Maszk mérete: a Gauss függvény a teljes síkon értelmezett és >0. A maszk véges csak a nagyobb súlyú környezet megtartása a maszkban. Nagy σ kicsi maszkmérettel közel átlagoló szűrő
σ = 2, 30 x 30 kernel
σ = 5, 30 x 30 kernel
Nagyobb simító maszk
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
21
Gauss simítás Nagyobb zaj
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
22
Átlagoló és Gauss szűrő hatása
23
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Szeparálható szűrők • Ha egy 2D szűrőt felbonthatunk két 1D szűrőre, akkor a szűrőt szeparálhatónak nevezzük
Jelentős komplexitás-beli nyereség A Gauss szűrő szeparálható
2D konvolúció: előbb 1 2 1
1
majd 2
ekvivalens: 1 2 1
1
1 2 1
1 2 1 2 4 2 1 2 1
• Ugyanannak az nxn konvolúciónak a műveletigénye
Szeparált szűrő esetén:
2D szűrő esetén:
O2n 1
O n 1
2
24
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Mi történik a kép szélén? • Mekkora lesz az eredmény kép? • MATLAB: filter2(h, I, shape)
h
shape = „full‟: I és h együttes mérete shape = „same‟: megegyezik I méretével shape = „valid‟: I és h méretének különbsége
full
h
h
I
h
valid
same h
h I
I h
h
h
h
h
h Source: S. Lazebnik
25
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Mi történik a kép szélén? • A szűrő kilóg a kép szélén
Hiányzó pixelértékeket extrapolálni kell
• Lehetséges módszerek:
Kilógó szűrő levágása (a hatás megegyezik egy megfelelő méretű fekete szegély hozzáadásával) A kép széleinek összeillesztése (gyűrűvé transzformálás) A képszélek másolása a kilógó rész alá Tükrözés a kép széleire
Source: S. Marschner
26
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Medián szűrő • Az a1, a2, …, a2n+1 számok mediánja:
a nagyság szerint rendezett számsorozat középső, (n+1)-dik eleme, jelölés: med{a1, a2, …, a2n+1}
• A medián tulajdonságai:
min{ai} ≤ med{ai}≤ max{ai} nem lineáris, de – med{ai+c} = med{ai}+c, – med{c·ai} = c·med{ai}
• Medián szűrés:
J (i, j ) medI (i u, j v) | (u, v) S
A mediánszűrés eredményét az S környezet mérete (és alakja) határozza meg.
27
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Medián szűrés
a rendezett környezet
a medián
egy képpont 3x3-as környezete a képpont új intenzitása
28
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Só/bors zaj szűrése medián szűrővel • Só/bors zaj eltüntetésére ideális a medián szűrő
Eltünteti a kis méretű kiugró értékeket Nem változnak az intenzitásértékek Éleket jobban megtartja, mint az átlagoló vagy a Gauss szűrő
Medián szűrő
29
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Élesítés • Élesítő hatású szűrő:
Kielemli a környezeti átlagtól való eltérést
0 0 0 0 2 0 0 0 0
-
1 1 1 1 1 1 1 1 1
Élesítő szűrő
Original
Source: D. Lowe
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
30
Élesítés
31
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Morfológiai szűrők • min-max szűrők
Az S környezettől is függ az eredmény! Általában kör alakú környezet
J min ( x, y ) min {I ( x u, y v)} ( u ,v )S
J max ( x, y ) max {I ( x u, y v)} ( u ,v )S
• Nemlineáris morfológiai operátorok:
min: erózió max: dilatáció
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
32
Erózió
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
33
Dilatáció
34
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Morfológiai szűrés • Ugyanazon környezettel az alábbi 4-elemű műveletlánc végrehajtása: 1. 2. 3. 4.
erózió dilatáció dilatáció erózió
• Tipikusan bináris képeken (pl. szegmentálás eredményén) környezettől függő mértékben
Kis foltok eltüntetése Kis lyukak betömése
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
35
Morfológiai szűrés példa
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
36
Morfológiai szűrés példa
37
Kató Zoltán: Digitális Képfeldolgozás (Tehetséggondozó program)
Felhasznált anyagok • Palágyi Kálmán: Digitális Képfeldolgozás /pub/Digitalis_kepfeldolgozas
• Trevor Darrell: C280, Computer Vision http://www.cs.cmu.edu/afs/cs/academic/class/15385s06/lectures/ppts/
• Richard Alan Peters: EECE/CS 253 Image Processing http://www.archive.org/details/Lectures_on_Image_Processing
• További források az egyes diákon megjelölve