Documente Academic
Documente Profesional
Documente Cultură
1
PI, curs 4
Fig. 1
2
PI, curs 4
Gradientul imaginii
∂f ( x, y )
∂f ( x, y )
→ ∂f ( x, y )
→ ∂x → →
∇f ( x , y ) = i+ j= =Gx i + G y j (1)
∂x ∂y ∂f ( x, y )
∂y
2
∂f ∂f
2
∇f = + = G x2 + G y2 (2)
∂x ∂y
Ceea ce interesează este direcţia pentru care apare variaţia maximă a funcţiei. Pentru a afla
această direcție facem trecerea de la coordonate carteziene { x, y} la coordonate polare {r , ϕ} :
x = r cos ϕ , y = r sin ϕ .
∂f ∂f ∂x ∂f ∂y ∂f ∂f
= + = cos ϕ + sin ϕ
∂r ∂x ∂r ∂y ∂r ∂x ∂y
∂ ∂f ∂f ∂f
= − sin ϕ + cos ϕ =
0.
∂ϕ ∂r ∂x ∂y
3
PI, curs 4
∂f
∂y
ϕ ( x, y ) = arctg . (3)
∂f
∂x
∇f = G x + G y (4)
sau
∇f = {
max Gx , G y . }
∂f f ( x + ∆x, y ) − f ( x, y )
Gx = ≈
∂x ∆x
(4’)
∂f f ( x, y + ∆y ) − f ( x, y )
Gy = ≈
∂y ∆y
Deoarece ∆x = ∆y = 1 , ⇒
G x = f ( x + 1, y ) − f ( x, y )
(5)
G y = f ( x, y + 1) − f ( x, y )
−1
M1= −1 1 şi M2 =
1
4
PI, curs 4
1
M1 1
= −1 0 şi M2= −1 .
0
x z 4 ↔ f ( x, y )
z 0 ↔ f ( x − 1, y − 1)
z0 z1 z2
z1 ↔ f ( x, y − 1)
z3 z4 z5
y
z 2 ↔ f ( x + 1, y − 1)
z6 z7 z8
z8 ↔ f ( x + 1, y + 1)
Gx = ( z5 − z 4 ) , G y = ( z7 − z4 ) (6)
G x = z8 − z 4 = f ( x + 1, y + 1) − f ( x, y )
(7)
G y = z 7 − z 5 = f ( x, y + 1) − f ( x + 1, y )
5
PI, curs 4
−1 0
P=
0 1
0 −1
R=
1 0
∇f ≈ z 8 − z 4 + z 7 − z 5
(8)
Aproximarea Sobel
z0 z1 z2
- utilizează măști de dimensiunea 3 × 3 z3 z4 z5 , z 4 ↔ f ( x , y) :
z6 z7 z8
Gx = ( z6 + 2 z7 + z8 ) − ( z0 + 2 z1 + z2 ) = f ( x − 1, y + 1) + 2 f ( x, y + 1) + f ( x + 1, y + 1) −
f ( x − 1, y − 1) − 2 f ( x, y − 1) − f ( x + 1, y − 1)
(9)
G y = ( z2 + 2 z5 + z8 ) − ( z0 + 2 z3 + z6 ) = f ( x + 1, y − 1) + 2 f ( x + 1, y ) + f ( x + 1, y + 1) −
f ( x − 1, y − 1) − 2 f ( x − 1, y ) − f ( x − 1, y + 1)
−1 −2 −1
Gx → 0 0 0
1 2 1
(10)
−1 0 1
G y → −2 0 2
−1 0 1
Ideea de a folosi ponderea 2 este de a obţine o anumită netezire prin mărirea importanţei
centrului.
6
PI, curs 4
Obs: Suma coeficienţilor în măştile care implementează gradientul este 0, indicând faptul
că acolo unde funcţia imagine este constantă rezultatul aplicării produsului de convoluţie cu
masca respectivă este zero, similar unui operator de derivare.
Aproximarea Prewitt
Gx = ( z6 + z7 + z8 ) − ( z0 + z1 + z2 )
(11)
G y = ( z2 + z5 + z8 ) − ( z0 + z3 + z6 )
−1 −1 −1
Gx → 0 0 0
1 1 1
(12)
−1 0 1
G y → −1 0 1
−1 0 1
7
PI, curs 4
Gradientul este folosit în special în accentuarea contururilor necesară pentru operaţiile din
procesul de segmentare. Gradientul este folosit şi în verificările industriale la depistarea
defectelor unor piese.
Exemple:
Fig. 4
8
PI, curs 4
Fig. 5
Fig. 6
9
PI, curs 4
Sobel:
− 2 − 1 0 0 1 2
S xy = − 1 0 1
S − xy = − 1 0 1
(13)
0 1 2 − 2 − 1 0
Prewit:
− 1 − 1 0 0 1 2
Pxy = − 1 0 1
P− xy = − 1 0 1 (14)
0 1 1 − 1 − 1 0
Fig. 8
10
PI, curs 4
Laplacianul imaginii
∂2 f ∂2 f
∇(∇f ) = ∇ f = ∆f = 2 + 2
2
(15)
∂x ∂y
Deoarece ∆x = ∆y = 1 ⇒
∂2 f
≈ f ( x + 1, y ) + f ( x − 1, y ) − 2 f ( x, y )
∂x 2
(16)
∂2 f
≈ f ( x, y + 1) + f ( x, y − 1) − 2 f ( x, y )
∂y 2
∇ 2 f = f ( x + 1, y ) + f ( x − 1, y ) + f ( x, y + 1) + f ( x, y − 1) − 4 f ( x, y ) (17)
0 1 0
L0 = 1 − 4 1 (17’)
0 1 0
∇2 f = [ f ( x + 1, y) + f ( x − 1, y) + f ( x, y + 1) + f ( x, y − 1)] − 4 f ( x, y) +
(18)
[ f ( x − 1, y − 1) + f ( x − 1, y + 1) + f ( x + 1, y − 1) + f ( x + 1, y + 1)] − 4 f ( x, y)
Masca corespunzătoare este:
11
PI, curs 4
1 1 1
L1 = 1 − 8 1
(19)
1 1 1
0 −1 0
L2 = − 1 4 − 1 (20)
0 − 1 0
respectiv
− 1 − 1 − 1
L3 = − 1 8 − 1 (21)
− 1 − 1 − 1
Obs. În cazul în care coeficientul central al măştii laplacianului este negativ, se face scădere.
Deci accentuarea contururilor se poate face prin:
f ( x, y ) − ∇ 2 f ( x, y ) (a)
g ( x, y ) = (22)
f ( x, y ) + ∇ f ( x, y )
2
(b)
Ecuaţia (22) (a sau b) este de fapt implementată printr-o singură mască. De exemplu,
înlocuind expresia laplacianului dată de (17) rezultă:
g ( x, y ) = 5 f ( x, y ) − [ f ( x + 1, y ) + f ( x − 1, y ) + f ( x, y + 1) + f ( x, y − 1)] (23)
12
PI, curs 4
0 −1 0
A0 = − 1 5 − 1 (24)
0 − 1 0
− 1 − 1 − 1
A1 = − 1 9 − 1 (25)
− 1 − 1 − 1
Fig. 9
13
PI, curs 4
Fig. 9
14
PI, curs 4
Fig. 10
15
PI, curs 4
a) Dublarea imaginii
În cazul dublării imaginii, fiecare linie şi fiecare coloană este dublată. Acest lucru este
echivalent cu întreţeserea unei imagini de dimensiuni M × N cu linii şi coloane de zerouri, pentru
a obţine o matrice de dimensiuni 2 M × 2 N şi apoi „convoluţia” ei cu o matrice de forma:
1 1
H = (1)
1 1
Rezultă o imagine:
g (m, n) = f (k , l ) (2)
m n
unde k = , l = , m = 0, 2 M − 1, n = 0, 2 N − 1 ,
2 2
cu [ x ] reprezentând partea întreagă a valorii x .
Obs. Când se utilizează convoluţia cu matricea H , „pivotul” este H (1,1) (primul element este
H (0,0) ). (Să dau exemplu imaginea de la punctul b)
b) Interpolarea liniară
Este o multiplicare a imaginii, la care pixelii care se intercalează sunt media aritmetică a
pixelilor vecini din imaginea originală.
Interpolarea liniară se realizează în două etape:
• pe linii;
• pe coloane.
De exemplu, pentru a mări de 2 × 2 o imagine de M × N , interpolarea liniară de-a lungul
liniilor dă:
g int - de dimensiune M × 2 N :
g int (m,2n ) = f (m, n) m =0, M − 1, n =0, N − 1 (3)
g int (m,2n + 1) =
1
[ f (m, n) + f (m, n + 1)] (4)
2
16
PI, curs 4
g - de dimensiune 2 M × 2 N :
g (2m, n ) = g int (m, n) m = 0, M − 1, n = 0, 2 N − 1 (5)
g (2m + 1, n ) =
1
[gint (m, n) + gint (m + 1, n)] (6)
2
1 2 1
1
H = 2 4 2 (7)
4
1 2 1
Obs. În cazul produsului de convoluţie poziţia pixelului curent corespunde elementului H (1,1)
(primul element este H (0,0) ).
1 0 7 0 1 4 7 3,5
7 intretesere cu 0 0 0 interpolare linii 0 0 0 0 interpolare coloane
1 0 0
3 → → →
1 3 0 1 0 3 2 1 0,5
0 0 0 0 0 0 0 0
1 4 7 3,5
2 3 4 2
3 2 1 0,5
1,5 1 0,5 0,25
Interpolarea de ordin superior e posibilă prin intercalarea fiecărei linii şi coloane cu p linii
şi p coloane de zerouri şi convoluţia de p ori cu matricea H.
17