You are on page 1of 33

Temats 3

Lineāri filtri, konvolūcija,


izpludināšanas filtri,
asināšanas filtri

Pasniedzēji: Kārlis Freivalds


Paulis Ķikusts

1
Konvolūcija
• Attēls ir visā plaknē definēta divu
argumentu intensitātes funkcija f(x, y).
• Rastra gadījumā – f(k, l), – < k, l < +.
• Filtrs ir attēla funkcijas pārveidošanas
operators, piemēram,
f(x, y)  f(x, y)  x,
f(x, y)  f 2(x, y).

2
• Teiksim, ka filtrs darbojas uz funkciju, un
vispārīgā gadījumā filtra rezultātu un filtru
apzīmēsim sekojoši
g(x, y) = F(f)(x, y).

• Mūs interesē filtri ar sevišķām īpašībām:


– linearitāte,
– telpiskā invariance.

3
• Linearitāte:
F(a  f + b  g)  a  F(f) + b  F(g),
kur a un b ir patvaļīgi reāli skaitļi, bet f un g
patvaļīgas attēlu intensitātes funkcijas.

• Viegli redzēt, ka pirmais no augšminētajiem


filtru piemēriem ir lineārs, bet otrais nav.

4
• Telpiskā invariance:
F(Tu,v (f))  Tu,v (F(f)),
kur
Tu, v (f)(x, y) = f(x – u, y – v),
kas savukārt nozīmē funkcijas f grafika
nobīdi par vektoru (u, v).

• Tagad būtu jāredz, ka pirmais no


augšminētajiem filtru piemēriem nav
telpiski invariants, bet otrais ir.
5
• Filtri, kas ir vienlaicīgi lineāri un telpiski
invarianti ir dabiski, un tādus filtrus var
aprēķināt ar sevišķi efektīviem algoritmiem.

• Visvieglāk šādu filtru uzbūvi ir saprast


rastra gadījumā.

• Vispirms rastrā definēsim impulsa attēlu p:


p(0, 0) = 1, p(k, l) = 0 pie (k, l)  (0, 0).

6
• Acīmredzami ir spēkā vienādība
f(k, l) =  f (i, j )  Ti, j (p)(k, l).
  i , j  

• Lineāram un telpiski invariantam filtram F


F(f)(k, l) =  f (i, j )  T (F(p))(k, l) =
i, j
  i , j  

=  f (i, j )  F(p)(k – i, l – j).


  i , j  

• Pēdējo summu sauc par funkciju f un F(p)


konvolūciju.
7
• Vispārīgā rastra gadījumā divu funkciju f un
g konvolūciju apzīmē un definē sekojoši

f *g (k, l) =  f (i, j )  g(k – i, l – j).


  i , j  

• Analoģiski, visā plaknē definētām


funkcijām

f *g (x, y) =  f (u, v)
(  ,  )
 g(x – u, y – v) du dv.

8
• Tagad lineāra telpiski invarianta filtra F
darbību iespējams pierakstīt pavisam īsi:
F(f)  f *F(p).
• F(p) ir filtra darbība uz impulsa funkciju.
Šīs darbības rezultātu tā arī sauc – filtra
impulsa reakcija.
• Tādējādi varam formulēt atziņu: lineāra
telpiski invarianta filtra darbība uz
attēlu ir šī attēla konvolūcija ar filtra
impulsa reakciju.
9
• Aizvietojot i ar k – i un j ar l – j, iegūstam
sakarību
f *g  g * f.

• Praksē filtra izteiksmē ir lietderīgi aizvietot


i ar k + i un j ar l + j:

F(f)(k, l) =  f (k  i, l  j )
 i , j  
 F(p)(–i, –j).

10
• Tieši negatīvi indeksēto filtra impulsa
reakciju ņem par galveno filtra raksturotāju,
apzīmējot
F(p)(–i, –j) = w(i, j).
• Tas dod sakarību
F(f)(k, l) =  f (k  i, l  j )
  i , j  
 w(i, j).

• Funkciju w(i, j) sauc par filtra svaru masku.

11
• Masku parasti izvēlas identiski vienādu ar 0
ārpus galīga loga
(i1, i2, j1, j2).
• Summēšana līdz ar to kļūst pavisam
konkrēta un elementāri algoritmizējama:
F(f)(k, l) =  f (k  i, l  j )
i1i i 2 , j1 j  j 2
 w(i, j).

12
Izpludināšanas filtri
• Kas ir izpludināšana?
• Attēla apgabala starojuma izkliedēšana
lielākā platībā.
• Kāda būtu izpludināšanas filtra impulsa
reakcija?
• Vienkāršākajā gadījumā impulsa attēla
vienīgā nenulles pikseļa (0, 0)
izpludinājums ir attēls, kurā atšķirīgi no
nulles ir vienīgi kvadrāta (–r, r, –r, r)
pikseļi.
13
• Visu pikseļu intensitātes ņemsim vienādas.
• Lai saglabātu attēla summāro intensitāti,
katra pikseļa intensitāte tad jāņem
1
2
.
(2r  1)

• Šis kvadrāts der arī par izpludināšanas filtra


svaru masku.

14
• Filtra darbība līdz ar to izrādās ir pikseļa
loga intensitāšu vidējās vērtības aprēķins:
1
F ( f )(k , l ) 
(r  1) 2
 f (k  i, l  j ).
 r i  r ,  r  j  r

• Šo filtru tā ari sauc – vidējās vērtības filtrs.

15
• Vidējās vērtības filtra piemērs

w=

16
• Var vēlēties izkliedi veikt nevienmērīgu –
tālāk no loga centra izplatīt mazāk pikseļa
starojuma.
• Šādā gadījumā impulsa reakcijas
definējumam dabiski lietot kādu Gausa
funkcijas versiju diviem argumentiem.
• Klasiskais variants:
( x2  y2 )
2 2
w( x, y )  e .

17
• Gausa filtra piemērs


18
• Izpludināšanas filtru salīdzinājums

(a) Oriģināls (b) Vidējās vērtības (c) Gausa

19
• Izrādās, ka it kā triviālā izpludināšana
uzdod interesantus jautājumus!
• Vienkāršs attēls –
sarkans aplis RGB(255, 0, 0)
uz gaišzila fona RGB(0, 255, 255):

20
• Pa kreisi tas pats attēls vienkārši izpludināts
(ar profesionālu rīku).
• Pa labi tas pats attēls nofotografēts bez
asuma.

• Kāpēc filtrētajā attēlā ap apli ir izteikti tumšs


izpludinājuma oreols?
21
Asināšanas filtri
• Kas ir asināšana?
• Dabiska ideja ir lielākas intensitātes
apgabalam pievienot daļu starojuma no
blakus esoša mazākas intensitātes apgabala.
• Tādā veidā tiktu akcentētas lokālas attēla
izmaiņas.
• Tomēr saistība ar asināšanas būtību te ir
tikai heiristiska.

22
• Vēl apsvērums – ja pieņemam, ka asums ir
zudis kaut kādas izpludināšanas rezultātā,
tad šis izpludinājums būtu jādabū prom.
• Skaista ir ļoti globāla ideja – atņemt no
attēla f tā izpludinātu versiju h:
g  (  1) f  h,   0,

• kur parametrs vēl papildus nosaka


asināšanas pakāpi.

23
• Sāksim ar tiešo ideju par intensitātes
pārdalīšanu no mazākas intensitātes
apgabala uz lielākas intensitātes apgabalu.
• Šajā nolūkā tuvāk aplūkosim tipisku neasas
robežas intensitātes sadalījumu.
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
1 2 3 4 5 6 7 8 9

24
• Asināšana notiktu, ja mazās intensitātes
tiktu vel samazinātas, bet lielās palielinātas.
• Vēl vairāk, vajadzētu samazināt intensitāti
tās kāpuma sākuma daļā – intervālā (2, 5),
bet palielināt beigu daļā – intervālā (5, 8).
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
1 2 3 4 5 6 7 8 9

25
• Atceramies, ka funkciju atvasinājumi
norāda to augšanas un dilšanas apgabalus
(pirmais atvasinājums).
• Kā arī izmaiņu sākumu un beigu apgabalus
(otrais atvasinājums).
• Mūs interesē funkcijas f otrais atvasinājums,
kuru diskrētajā gadījumā aizstāj diference
f (k )  (f(k + 1) – f(k)) – (f(k) – f(k – 1)) =
= f(k – 1) – 2f(k) + f(k + 1).

26
• Te redzams f (k ) grafiks mūsu piemēram:
2

1.5

0.5

0
1 2 3 4 5 6 7 8 9
-0.5

-1

-1.5

-2

4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
1 2 3 4 5 6 7 8 9

27
• Tiešs izmantojums asināšanā ir
nesamākslots
g  f  f ,   0.

• Pie   1 šī starpība attēlota ar krāsainu


līniju: 6

0
1 2 3 4 5 6 7 8 9
-1

-2

28
• f  aprēķins ir f filtrēšana ar 1-dimensionālu
svaru masku
(1, –2, 1),
•  f  aprēķins – filtrēšana ar masku
( , 2 ,   ),
• f nemainīšanu nodrošina maska
(0, 1, 0).
• Rezultātā mūsu 1-dimensionālās asināšanas
filtra maska ir
( , 1  2 ,   ).
29
• Pārsteidzoši, ka, pie attiecīgi izvēlētām
vērtībām, iegūtais filtrs nodrošina to pašu,
ko attēla izpludinātās versijas atņemšana.
• Piemēram, ņemot   1 , pēdējā maska ir
(–1, 3, –1).
• Savukārt, izvēloties   3 izpludinātās
versijas atņemšanai, tiešām iegūstam to
pašu:
1 1 1
(0, 4, 0)  3( , , )  (1, 3,  1).
3 3 3
30
• Analoģiski spriežot 2 dimensiju gadījumā
f(k, l), pilna asināšanas filtra svaru maska ir
sekojoša
 0  0 
 
   1  4  
 0  0 

• Tālākas idejas ir iekļaut arī atvasinājumus


diagonāļu virzienā un vispārināt masku
lielākiem izmēriem.
31
• Asuma uzlabošanas piemērs

32
• Asuma uzlabošanas filtra trūkumi

– Šāds filtrs var novest


pie dubultu kontūru
parādīšanās.
– Cita problēma – tiek
pastiprināti attēla
trokšņi.

33

You might also like