You are on page 1of 18

Digitalna obrada

slike
DETEKCIJA
IVICA
Važnost ivica
 Osnovni problem visokofrekventnog dijela je
mala energija tako da ovaj dio spektra brzo
“utone” u šum.

 Najvažniji dio visokofrekventnog dijela spektra su


ivice. Objekat i slika su potpuno prepoznatljivi
samo na osnovu ivica. Ivice se mogu zapisati u
binarnoj formi i kao takve efikasno obrađivati.
 Na osnovu detektovanih ivica može se podešavati
veličina lokalnog susjedstva kod algoritama za
filtriranje, itd.
Što je ivica?
 Nema precizne definicije.
 Približna definica je da je ivica zona slike u kojoj
dolazi do nagle promjene osvjetljaja.
Kako smo u dosadašnjoj praksi detektovali nagle
promjene neke funkcije?
 Jedan od načina je na osnovu velikih vrijednosti
izvoda koje sugerišu da je u posmatranoj tački došlo
do promjene veličine funkcije.
Da li možemo ovakvu strategiju primjeniti kod ivica?
 Uz malo prilagođavanja možemo.
Magnituda izvoda
Izvod se definiše kao:

Za 2D funkcije izvod se definiše kao:


df ( x ) f ( x  x )  f ( x )
f '( x)   lim
dx x 0 x
Parcijalni izvodi po x i y
Nagli prelaz sa jednog na drugi osvjetljaj se može detektovati preko magnitude (amplitude ivice) koja se može računati sa:

 f ( x, y ) f ( x, y ) 
f ( x, y )  [ f x ( x, y ), f y ( x, y )]   , 
  x  y 

e ( x, y )  f x2 ( x, y )  f y2 ( x, y )
Izvod slike i ugao ivice
Ponekad se e(x,y) računa alternativno kao:
e( x, y ) | f x ( x, y ) |  | f y ( x, y ) |

Lokalni pravac izvoda (ivice) se može računati kao:


 f y ( x, y ) 
( x, y )  arctan  
f
 x ( x , y ) 

Očigledno da ćemo veličinu e(x,y) (ili neku alternativu) koristiti


kao detektor ivice tako što ćemo je porediti sa nekim pragom,
a na osnovu (x,y) ćemo pokušati da dođemo do još neke
dodatne informacije o ivici.
Detektor ivice i diference
 Osnovna ideja kod detektora ivica je da se na osnovu poređenja odziva
detektora e(x,y) sa nekim pragom koji može biti zavisan od pozicije T(x,y)
donese binarna odluka: jeste ili nije ivica. Stoga je sama slika koja
predstavlja ivice binarna:
(x,y) pripada ivici

1 e ( x , y )  T ( x , y )
iv( x, y )   (x,y) ne pripada ivici
0 e ( x , y )  T ( x, y )
 Prvi problem koji je lako uočljiv je činjenica da mi ne raspolažemo sa
kontinualnom slikom i da umjesto izvoda moramo koristiti diference
(konačne razlike) kao procjene izvoda.
Problem diferenci
Kako su kod nas pikseli razmaknuti za 1 to možemo na
osnovu relacije za izvod uvesti sljedeću aproksimaciju izvoda:
f x (n, m)  f (n  1, m)  f (n, m) f y (n, m)  f (n, m  1)  f (n, m)

sa (x,y) prešli smo na


Drugi krupan problem je činjenica što piksele (m,n).
konačne razlike pojačavaju šum.
Pretpostavimo da u slici nema ivice i da je u pitanju samo Gausov bijeli šum sa
varijansom s2 i da je šum nezavisan od piksela do piksela (stacionaran). Tada
je varijansa konačne razlike po x-koordinati: =0
E{( f x (n, m)) 2 }  E{[ ( n  1, m )  ( n, m)]2 }  uvećana varijansa

 E{ 2 ( n  1, m )}  2 E{( n  1, m ) ( n, m)}  E{2 ( n, m)}  22


Kako prevazići problem šuma?

• Osnovna ideja kod prevazilaženja problema


asociranih sa šumom je usrednjiti jedan broj piksela
normalno u odnosu na pravac ivice.
• Dakle, za računanje ivice u pravcu x-koordinate u
tački (n,m) ne koristiti samo osvjetljaje u tačkama
(n,m+1) i (n,m) već i osvjetljaje u pikselima
(n+1,m+1) i (n+1,m) te (n-1,m+1) i (n-1,m).
• Čitava klasa detektora ivica u koju spadaju i
popularni Sobelov i Prewittov detektori je
zasnovana na ovom principu.
Maska
 Najšire korištena grupa filtara je zasnovana na maski. Maska je 3x3
konvoluciona matrica (e(n,m) se može računati preko konvolucije).
 Dizajniraju se dvije matrice da bi se izvršila detekcija ivica duž
pravca x- i y-ose.

 Matrica koja se koristi da za detekciju ivice duž pravca x ose


mora biti ista kao ona koja se koristi za detekciju ivica duž y ose
ali rotirana za p/2 ili transponovana. Na ovaj način se isti značaj
daje ivicama u ova dva normalna pravca. Mi ćemo posmatrati
detekciju u pravcu x-ose i neka je maska:
 a11 a12 a13 
a a22 a23 
 21 
 a31 a32 a33 
Dizajn maske
Centralni piksel je piksel od interesa. Mi želimo oduzeti piksele koji
odgovaraju pozicijama a12 i a32. Međutim koristimo i dva susjedna
piksela da pripomognu u cilju umanjivanja uticaja šuma. Jasno je da
lijevi i desni piksel treba uzeti sa istom jačinom pa na osnovu ovoga
slijedi da a11=a31, a21=a23 i a31=a33:
 a11 a12 a11 
a a22 a21 
 21 
 a31 a32 a31 

Pikseli u donjem redu se  a11 a12 a11 


oduzimaju a
od piksela u gornjem redu stoga a22 a21 
 21 
treba postaviti te koeficijente da   a11  a12  a11 
imaju različit predznak:
Dizajn maske
 Ako je slika uniformna u lokalnom susjedstvu to znači da nema ivice i
da odziv detektora ivice treba da bude 0. Stoga treba da važi da je
suma koefcijenata maske 0:
 a11 a12 a11 
a 2a21 a21 
 21 
  a11  a12 a11 

 Obično se želi da je odziv detektora koji traži ivicu u jednom pravcu na


ivicu koja je u drugom pravcu jednak 0. Da bi se ovo dobilo postavljaju
se centralni pikseli ove matrice na 0:
 a11 a12 a11 
 0 0 0 
 
  a11  a12  a11 
Dizajn maske
Konačno detekciona matrica se može podijeliti sa a11 jer se ovo
može tretirati kao “nevažna” multiplikativna konstanta:

1 K 1  1 0 1
0 0 0 Za ivice u  K 0 K Za ivice u
  x-pravcu   y-pravcu
 1  K 1  1 0 1 

K=1Prewittova matrica

K=2Sobelova matrica
Najpoznatiji detektor zasnovan na
maski.
Detektor - primjer
Djevojka, ivice detektovane na
osnovu Sobelovog detektora
po oba pravca, te u pravcu
horizontale odnosno vertikale.

ILI operacija
primijenjena na
odzive detektora po
horizontali i
vertikali.
MATLAB - Naredba

 Matlabova naredba za detekciju ivica je edge.


 Naredba je jednostavna za korištenje u nekom osnovnom obliku:
E=edge(G,’tip’,’parametri’);
gdje je G sivoskalirana slika čije se ivice traže, ‘tip’ je dati tip
detektora ivica (do sada učeni su ‘roberts’, ‘prewitt’ i ‘sobel’)¸, a
‘parametri’ su određeni parametri datog detektora. Izlazna slike E
je binarna.
Obično je treći parametar (koji se može izostaviti i prepustiti
MATLAB-u za podešavanje) prag koji se zadaje kao broj od 0 do 1
(može se postaviti i da je []), dok je četvrti parametar kod ‘sobel’ i
‘prewitt’, pravac ivice koji može biti: ‘horizontal’, ‘vertical’ ili `both’.
Prag detekcije ivice
 Prag je prilično teško odrediti na neki pošten način. Naime
u tamnom dijelu slike odziv detektora ivica će biti mali, a
to ne znači da u tom dijelu nemamo ivica dok u svijetlim
oblastima čak i mali prijelaz (u procentima) sa jednog na
drugi osvjetljaj nam daje veliki odziv detektora ivice.
 Još veći problem predstavlja činjenica da mi vjerovatno za
datu tačku možemo imati liniju koja ne prolazi ni
horizontalno ni vertikalno pa nam mogu oba detektora i
po x i po y osi imati istovremeno mali ili veliki odziv.
 Konačno može da se dogodi da više uzastopnih piksela
predstavlja postepeni prelaz sa jednog na drugi osvjetljaj.
Pravac ivice
 Određivanje praga detekcije za ivicu je složen posao i što
je još gore od detektora do detektora se mijenja
određivanje dobrog praga.

 Postoji i problem kako estimirati pravac ivice. Kod klase


detektora zasnovanih na maski kao što su Sobelov i
Prewittov mi imamo podatke samo o ivicama u pravcu x i
y koordinate. Postoji mogućnost da se estimacija pravca
ivice obavi na osnovu ex(n,m) i ey(n,m) kao
 e y ( x, y ) 
ˆ ( x, y )  arctan  
e
 x ( x , y ) 
Detekcija ivica u boji

 Najjednostavniji način da se izvrši detekcija ivica kod slike u


boji je da se to obavi za svaki kanal pojedinačno pa da se
dobijene slike spoje:
 A=imread('flowers.tif'); Detektor po raznim kanalima
er=edge(A(:,:,1)); računati po default
eg=edge(A(:,:,2)); parametrima funkcije edge iz
MATLAB-a.
eb=edge(A(:,:,3));
e=er|eg|eb; Tri detektora spojena u jedan
imshow(e) korištenjem logičke operacije.

Ovo je veoma jednostavno i daje efektne rezultate, ali u posljednje vrijeme


ima dosta napora da se kreiraju složeniji detektori ivica slike u boji zbog
nekih veoma značajnih aplikacija.
O ivicama
 U posljednje vrijeme se pokušava (i ima dosta
uspjeha) u dizajnu detektora ivica koji mogu da
imaju adaptivnu širinu maske koja se koristi kod
detekcije. Teorijski se pokazuje da ovakav način vodi
ka “gotovo” tačnim vrijednostima izvoda slike za
razliku od diferenci koje se ovdje koriste.
 Određivanje praga je veoma izazovan i težak problem
koji se najčešće prevazilazi heurističkim (ad-hok)
tehnikama.

You might also like