You are on page 1of 21

TIU LU N X LY ANH

Giao vin hng dn : Th.s Trn Vn Hung


Sinh vin thc hin: MSSV :
1. Trn Bn Vng 09082031
2. Nguyn Tri Khoa 09225171
tai: Lm ni ng bin nh mu.
Yu cu: Dng Matlab GUI, vit 1 chng trnh v tch bin. Yu cu ly nh t mt file nh
mu, hin th nh gc, chn cc phng php tch bin, thc hin v hin th nh c
tch bin.
I. C s ly thuyet tach bien:
Tach bien la phng phap thong dung nhat e tach theo
ngha gian oan trong cac gia tr cng o. S gian oan
c tach s dung ao ham bac nhat va bac hai. ao
ham bac nhat la chon trong x ly anh la gradient (o
doc). Gradient cua ham 2-D
) , ( y x f
c nh ngha di dang
vect
1
1
1
1
]
1

1
]
1


y
f
x
f
G
G
f
y
x
Bien o cua vect nay:
[ ] ( ) ( ) [ ]
2 / 1
2 2
2 / 1
2 2
/ / ) ( y f x f G G f mag f
y x
+ +
e tnh toan n gian, con so nay c xap x bang cach
s dung gia tr tuyet oi
y x
G G f +
Xap x nay van con di dang cac ao ham: o la,
chung bang 0 trong cac vung co cng o khong oi, va
gia tr chung ty le vi bac cua s thay oi cng o
trong vung co cac gia tr pixel bien thien. No c xem la
bien o cua gradient hoac xap x n gian cua no di
dang gradient.
ac tnh c ban cua vect gradient la cac iem cua no la
hng co ty le thay oi ham
f
tai toa o
) , ( y x
ln nhat.
Goc xay ra ty le thay oi ln nhat la:

,
_


x
y
G
G
y x
1
tan ) , (
1
Mot trong nhng phng phap then chot a ra la c oan
ao ham x
G
va y
G
theo phng phap so. Cac phng phap
khac nhau c dung bi ham edge c thao luan sau
trong phan nay.
ao ham bac hai trong x ly anh c tnh s dung toan
t Laplace. Toan t Laplace cua ham 2-D
) , ( y x f
c cho di
dang vi phan bac hai nh sau:
2
2
2
2
2
) , ( ) , (
) , (
y
y x f
x
y x f
y x f


Toan t Laplace t khi c dung e tach bien v, vi phan
bac hai, de b anh hng bi nhieu, bien o cua no sinh
ra cac bien kep, va khong the tach hng bien. Tuy
nhien , toan t Laplace co the la phan bo sung manh khi
s dung ket hp vi ky thuat tach bien khac. V du, mac
du cac bien kep khong thch hp e tach bien trc tiep,
ac tnh nay co the dung e nh v bien.
Y tng c ban ang sau tach bien la tm cac ni trong
anh co cng o thay oi nhanh, s dung mot trong hai
tieu chuan tong quat sau:
Tm cac ni ao ham bac nhat cua cng o sang
co bien o hn mot ngng.
Tm cac ni ao ham bac hai cua cng o sang co
cho cheo 0.
Cac ham bien cua IPT (Image Processing Toolbox) cung cap
mot so c lng ao ham da tren cac tieu chuan mi
noi ti. oi vi mot so trong nhng c lng nay, co
the xac nh bo tach bien co nhay vi cac bien ngang
hay bien doc hay khong hoac ca hai. Cau truc tong quat
cua ham nay la
[g, t] = edge (f, method, parameters)
Trong o f la anh au vao, method la mot trong cac
phng phap c liet ke trong bang 1, va parameters la
cac tham so them vao c giai thch sau. Trong ngo ra, g
la mang logic vi cac gia tr 1 tai cac v tr cac iem
bien c tach va 0 khi khong c tach. Tham so t la tuy
chon, no cho ngng c dung bi bien e xac nh cac
gia tr gradient u manh e c goi la cac iem bien.
Bang 1
Bo tach bien Cac ac tnh c ban
Sobel Tm bien dung xap x Sobel vi ao
ham cho trong hnh 1(b)
Prewitt Tm bien dung xap x Prewitt vi ao
ham cho trong hnh 1(c)
Roberts Tm bien dung xap x Roberts vi ao
2
ham cho trong hnh 1(d)
Laplacian of a
Gaussian
(LoG)
Tm bien bang cach tm iem cheo 0
sau khi loc qua bo loc Gauss
Zero
crossings
Tm bien bang cach tm iem cheo 0
sau khi loc qua bo loc c xac nh bi
ngi s dung
Canny Tm bien bang cach tm cac cc ai a
phng cua gradient
) , ( y x f
. Gradient c
tnh toan dung ao ham cua bo loc
Gauss. Phng phap dung hai ngng e
tach cac bien manh va yeu, va gop
cac bien yeu ngo ra ch khi chung
c ket noi vi cac bien manh. Do
o, phng phap nay thch hp hn e
tach cac bien yeu that s.
I.1.Bo tach bien Sobel
Bo tach bien Sobel s dung cac mat na trong hnh 1(b) e
xap x ao ham bac nhat x
G
va y
G
. Noi cach khac,
gradient tai iem tam trong mot lan can c tnh theo bo
tach Sobel:
[ ]
2 / 1 2
7 4 1 9 6 3
2
3 2 1 9 8 7
2 / 1
2 2
} )] 2 ( ) 2 [( )] 2 ( ) 2 {[( z z z z z z z z z z z z G G g
y x
+ + + + + + + + + +
Khi o, ta noi rang v tr (x,y) la pixel bien neu
T g
tai v tr
o, trong o T la mot ngng c ch nh.

z1
z4
z7
z2 z3
z6
z9 z8
z5
Image neighborhood
3

-1 2 -1
0 0 0
1 1 1
-1 0 1
-2 0 2
1 0 -1
Sobel

) 2 ( ) 2 (
3 2 1 9 8 7
z z z z z z G
x
+ + + +

) 2 ( ) 2 (
7 4 1 9 6 3
z z z z z z G
y
+ + + +

-1 -1
0 0 0
1 1 1
-1 0 1
-1 0 1
1 0 -1
-1
Prewitt

) ( ) (
3 2 1 9 8 7
z z z z z z G
x
+ + + +

) ( ) (
7 4 1 9 6 3
z z z z z z G
y
+ + + +


0
0
-1
1
0
0 1
-1
Roberts

5 9
z z G
x

6 8
z z G
y

Hnh 1. Mot so mat na tach bien va ao ham
bac nhat chung hien thc
Bo tach bien Sobel co the c thc hien bang cach loc
mot anh, f, (dung imfilter) vi mat na ben trai trong hnh
1(b), loc lai f vi mat na khac, bnh phng cac gia tr pixel
vi moi anh c loc, cong hai ket qua, va tnh can bac
hai. Cac chu thch tng t oi vi cac phan th 2 va th
3 trong bang 1. Ham edge n gian cac goi toan t trc
thanh mot ham goi va them vao cac dac tnh khac,
chang han nh chap nhan mot gia tr anh ngng hoac
xac nh ngng mot cach t ong. Them vao o, edge
cha cac ky thuat tach bien khong hien thc trc tiep
c bang imfilter
Cu phap goi bo tach Sobel tong quat la
[g , t ] = edge(f, sobel, T, dir)
Trong o f la anh au vao, T la ngng c ch nh va
dir xac nh hng can tnh tach bien: ngang, doc hoac
ca hai. Nh a noi, g la anh logic cha gia tr 1 tai nhng
ni bien c tach va gia tr 0 tai nhng ni bien c
tach. Tham so t trong ngo ra la tuy chon. No la gia tr
4
ngng c dung bi edge. Neu T dc ch nh th t = T.
Mat khac neu T khong c ch nh (hoac e rong []), f
se at t bang vi ngng do no t ong xac nh va sau
o s dung cho viec tach bien. mot trong nhng ly do c
ban cho viec gop t trong tham so ngo ra la e nhan gia
tr khi tao cho ngng. Ham edge s dung bo tach Sobel
mac nh neu cu phap
g = edge (f), hoac la [g, t] = edge(f).
I.2.Bo tach bien Prewitt
Bo tach bien Prewitt s dung mat na trong hnh 1(c) e xap
x theo phng phap so ao ham bac nhat x
G
va y
G
. Cu
phap goi tong quat la:
[g , t ] = edge(f, prewitt, T, dir)
Tham so ham nay ong nhat vi tham so Sobel. Bo tach
Prewitt hi n gian hn e hien thc bang may tnh so vi
bo tach Sobel, nhng no co khuynh hng sinh ra mot chut
nhieu. (No co the c the hien qua he so 2 trong bo
tach bien lam trn)
I.3.Bo tach bien Roberts
Bo tach bien Roberts s dung mat na trong hnh 1(d) e
xap x theo phng phap so ao ham bac nhat x
G
va y
G
.
Cu phap goi tong quat la:
[g , t ] = edge(f, roberts, T, dir)
Tham so ham nay ong nhat vi tham so Sobel. Bo tach
Roberts la mot trong nhng bo tach bien xa nhat trong x
ly anh so va theo hnh 1(d), no cung n gian nhat. Bo
tach bien nay c dung t hn ang ke cac bo tach
khac do chc nang gii han cua no (v du, no khong oi
xng va khong the c tong quat hoa e tach bien la
tha so cua 45
0
). Tuy nhien, no van c dung thng
xuyen trong hien thc phan cng khi tnh n gian va toc
o la cac yeu to chi phoi.
I.4.Bo tach bien Laplace cua ham Gauss (LoG)
Xet ham Gauss
2
2
2
) (

r
e r h


Trong o
2 2 2
y x r +
va

la o lech chuan. ay la ham


trn, neu no chap vi mot anh, se lam m anh. o m
5
c xac nh bi gia tr

. Toan t Laplace cua ham nay


(ao ham bac 2 theo r):
2
2
2
4
2 2
2
) (

r
e
r
r h

1
]
1



Vi nhng ly do ro rang, ham nay goi la toan t Laplace
cua ham Gauss (LoG). V ao ham bac hai la toan t tuyen
tnh, chap (loc) vi mot anh bang ) (
2
r h giong nh au
tien chap anh vi ham trn va sau o tnh ket qua cua
toan t Laplace. ay la cha khoa khai niem c ban cua
bo tach LoG. Chung ta chap anh bang ) (
2
r h biet no co 2
tac ong: no lam mn anh (do o giam nhieu) va no tnh
toan t Laplace, lam cong mot anh bien kep. nh v cac
bien sau o tm cac iem giao zero gia cac bien kep. Cu
phap goi tong quat la:
[g , t ] = edge(f, log, T, sigma)
Trong o sigma la o lech chuan va cac tham so con lai
giong phan trc. Gia tr mac nh cua sigma la 2. Nh a
noi, bo qua bat c bien nao khong ln hn T. Neu T
khong c cho, hoac rong [ ], edge chon gia tr mot cach
t ong. at T t 0 tao cac bien la cac ng vien kn,
mot ac tnh quen thuoc cua phng phap LoG.
I.5.Bo tach bien iem giao zero
Bo tach bien nay da tren khai niem giong phng phap
LoG, nhng phep chap c thc hien s dung ham loc c
ch nh H. Cu phap goi ham
[g , t ] = edge(f, zerocross, T, H)
Cac tham so khac c giai thch nh bo tach LoG
6
I.6. Bo tach bien Canny
Bo tach bien Canny (Canny [1986]) la bo tach bien manh
nhat cung cap bi ham edge. Co the tom tat phng
phap nay nh sau:
1. Anh c lam trn s dung mot bo loc Gauss vi o
lech chuan

, e giam nhieu
2. Gradient cuc bo, [ ]
2 / 1
2 2
) , (
y x
G G y x g + va hng bien
) ( tan ) , (
1
x
y
G
G
y x


, c tnh toan tai moi iem. Mot
trong 3 ky thuat au trong bang 10.1 e tnh x
G
va
y
G
. Mot iem bien c nh ngha la iem co o
dai la cc ai a phng theo hng cua gradient.
3. iem bien c xac nh (2) tang len en cac nh
trong gradient bien o anh. Sau o thuat toan tm
nh cua cac nh nay va at gia tr 0 vao tat ca
pixel khong that s nam tren nh v vay tao ra mot
ng mong ngo ra, mot qua trnh c biet la
s nen lai khong cc ai. Cac pixel nh c at
ngng dung hai ngng,
1
T
va
2
T
. Cac pixel nh
ln hn
2
T
c goi la cac pixel bien manh. Cac
pixel nh nam gia
1
T
va
2
T
c goi la cac pixel
bien yeu.
4. Cuoi cung, thuat toan thc hien bien ket noi bang
cach ket hp cac pixel yeu ma co dang ket noi-8
vi cac pixel manh.
Cu phap bo tach bien Canny la:
[g , t ] = edge(f, canny, T, sigma)
Trong o T la mot vect,
[ ]
2 1
T T T
la 2 ngng c
giai thch trong bc 3 cua thu tuc trc va sigma la
o lech chuan cua bo loc lam trn. Neu t gop vao
thong so ngo ra, no la vect 2 phan t cha 2 gia tr
ngng c dung bi thuat toan. Cu phap n gian
c giai thch nh cac phng phap khac, bao gom viec
t ong tnh toan T neu no khong c cung cap. Gia
tr mac nh cua sigma la 1.
7
II.C s tach bien anh mau
II.1. ac tnh anh mau trong Matlab
Cong cu x l anh mau trong Matlab thc hien hai kieu anh
mau hoac la indexed images hoac la RGB images.
II.1.1 Anh RGB
Anh RGB la mot mang pixel mau M x N x 3. Moi pixel mau
la s ket hp cua ba thanh mau red, green va blue cua
anh mau tai mot v tr khong gian bat k (xem hnh 2).
Hnh 2. Cach ma nhng pixels cua mot anh RGB
c hnh thanh t cac pixels cua ba anh
thanh phan
Mot anh RGB co the c xem nh la s sap xep cua ba
anh mc xam ma khi cho vao cac ngo vao red, green va
blue cua mot man hnh mau se tao ra mot anh mau tren
man hnh. Ba anh c hnh thanh t mot anh mau RGB la
cac anh thanh phan red, green va blue. Lp d lieu cua
cac anh thanh phan xac nh mien gia tr cua chung.
Neu mot anh RGB thuoc lp double th mien gia tr la [0,
1]. Tng t ta co mien gia tr la [0, 255] hoac [0, 65535]
tng ng vi cac anh mau RGB thuoc lp uint8 hoac
uint16. So lng bit c s dung e ai dien cho cac gia
tr pixel cua nhng anh thanh phan xac nh chieu sau bit
cua mot anh RGB. V du moi anh thanh phan la mot anh
8
8 bit suy ra anh RGB tng ng se la 24 bit. Noi chung so bit
trong cac anh thanh phan la nh nhau. So mau co the co
trong mot anh RGB la
3
) 2 (
b
, trong o b la so bit trong moi
anh thanh phan. V du trng hp 8 bit th so mau la
16,777,216.
Gia s fR, fG va fB ai dien cho ba anh thanh phan RGB.
Mot anh RGB c hnh thanh t nhng anh nay bang
cach s dung toan t cat (concatenate) e sap xep cac
anh nay:
rgb_image = cat(3, fR,fG,fB)
Khong gian mau RGB thng c bieu dien di dang hnh
hoc nh la mot khoi mau RGB (no c mo ta hnh 2). Cac
mau s cap (red, green, va blue) va cac mau th cap
( cyan, magenta, va yellow) c bo tr tai cac nh nh hnh 3.
Hnh 3. S o nguyen ly cua hnh hop mau RGB
bieu dien cac mau s cap va th cap tai
cac nh. Cac iem doc theo ng cheo
chnh co gia tr xam t en tai goc toa o
en trang tai iem (1,1,1)
II.1.2. Anh Index
Anh index co hai thanh phan : mot ma tran d lieu so
nguyen, X, va mot ma tran ban o mau, map. Ma tran map
la mot mang m x 3 cua lp double cha cac gia tr trong
mien [0 1]. Chieu dai, m, cua map bang vi so mau ma
9
no nh co. Moi hang cua map xac nh cac thanh phan
red, green va blue cua tng mau n. Mau cua moi pixel
c xac nh bang cach s dung gia tr nguyen tng
ng cua ma tran X ch en map (ban o mau). Neu X
thuoc lp double th tat ca nhng thanh phan cua no vi
nhng gia tr nho hn hoac bang 1 se ch en hang au
cua map, tat ca nhng thanh phan vi gia tr 2 ch en
hang th 2 va van van. Neu X thuoc lp uint8 hoac uint16
th tat ca nhng thanh phan vi gia tr 0 ch en hang
au cua map, tat ca nhng thanh phan vi gia tr 1 ch
en hang 2 va van van. Nhng khai niem nay c mo
ta trong hnh 4.
Hnh 4. Cac phan t cua mot anh index. Chu y
rang gia tr cua mot phan t cua mang
so nguyen X xac nh th t hang trong
ban o mau. Moi hang cha mot bo ba
RGB va L la tong so hang.
e hien th mot anh index ta co the viet:
>> imshow(X,map)
hoac cach khac:
>> image(X)
>> colormap(map)
Mot ban o mau c lu tr vi mot anh index va t
ong c load vi anh khi ham imread c s dung e
load anh.
10
oi khi rat can thiet e xap x mot anh index thanh anh
index vi t so mau hn. e thc hien no ta co the dung
ham imapprox:
[Y, newmap] = imapprox(X, map, n)
Ham nay tra ve mang Y vi ban o mau mi newmap
ma co nhieu nhat la n mau. Mang au vao X co the
thuoc lp uint8, uint16, hoac double. Ngo ra Y thuoc lp uint8
neu n nho hn hoac bang 256. Neu n ln hn 256, Y thuoc
lp double.
Khi so hang trong ban o mau nho hn so gia tr nguyen
phan biet trong X, nhieu gia tr khac nhau trong X se c
hien th vi cung mau trong ban o mau. Mot anh lung
tung cung se c hien th neu chieu dai cua ban o
mau vt qua tam cho phep cua nhng gia tr cua cac
thanh phan cua X.
Co vai cach e xac nh mot ban o mau. Co the s
dung lenh sau:
>> map(k , : ) = [r(k) g(k) b(k)]
trong o, [r(k) g(k) b(k)] la nhng gia tr RGB tai v tr hang
th k cua ban o mau.
Bang 2 cho nhng gia tr RGB oi vi mot so mau c ban.
Bat c ba nh dang nao trong bang eu co the c s
dung e xac nh mau. V du, mau nen co the c thay
oi thanh xanh lucbang cach dung mot trong ba cau lenh
sau:
>> whitebg(g)
>> whitebg(green)
>> whitebg([0 1 0])
Cac mau them vao the hien trong bang 2 lien quan en
cac gia tr thap phan. V du [0.5 0.5 0.5] la mau xam, [0.5 0
0] la mau o toi, [0.49 1 0.83] la mau ngoc xanh bien.
Matlab cung cap mot so bang o mau c nh ngha
trc, truy cap s dung cau lenh
>> colormap( map_name)
trong o no se at ban o mau thanh ma tran map_name.
V du:
>> colormap(copper) trong o copper la mot trong so
ban o mau c Matlab nh ngha trc. Mau trong ban
o nay thay oi rat mn t en en mau ong sang. Neu
anh cuoi cung c hien th la mot anh index, lenh nay
se thay oi ban o mau cua no thanh copper. Theo mot
la chon anh co the hien th trc tiep vi ban o mau
mong muon:
>>imshow( X, copper)
11
Mot so ban o mau co san trong Matlab. Chieu dai (so
mau) cua cac ban o nay co the c xac nh bang
cach gi kem theo trong dau ngoac. V du: gray(16) tao mot
ban o mau vi 16 mc xam.
Bang 2. Cac gia tr RGB cua mot so mau c ban
Ten ay
u
Ten viet
tat
Gia tr RGB
Black
Blue
Green
Cyan
Red
Magenta
Yellow
White
k
b
g
c
r
m
y
w
[0 0 0]
[0 0 1]
[0 1 0]
[0 1 1]
[1 0 0]
[1 0 1]
[1 1 0]
[1 1 1]

II.2. Tach bien anh mau dung phng phap
Gradient
Phng phap thng dung e xap x cac ao ham la sai
so gia cac pixel trong caclan can nho trong mot anh.
Hnh 1 bieu dien mot lan can kch thc 3 x3 trong o z la
gia tr pixel. Mot xap x cua ao ham rieng phan theo x
(phng doc) tai tam iem cua vung (z
5
) c cho bi o
chenh lech:
( ) ( )
3 2 1 9 8 7
2 2 z z z z z z G
x
+ + + +
Tng t ao ham theo phng y c xap x bi o chenh
lech
( ) ( )
7 4 1 9 6 3
2 2 z z z z z z G
y
+ + + +
Cac con so nay c tnh de dang tai moi iem trong anh
bang phep chap (s dung ham imfilter) anh lan lt vi
tng mat na trong hnh 1. Sau o xap x cua ap ng
gradient anh thu c bang cach cong hai tr tuyet oi cua
hai anh c chap. Cac mat na c noi ti la cac mat
na Sobel, co the c tao ra dung ham fspecial.
Gradient c tnh toan theo cach c mo ta la mot trong
nhng phng phap thng dung e tach bien anh xam,
a c thao luan trong phan I. Quan tam cua ta luc nay
la tnh gradient trong khong gian mau RGB. Tuy nhien phng
phap va mi a ra co the ng dung c trong khong
gian 2D nhng khong m rong c cho khong gian co chieu
ln hn. Cach duy nhat e s dung no oi vi cac anh
12
RGB la tnh gradient cua moi thanh phan mau roi sau o
ket hp cac ket qua. Khong may thay, theo phan sau, ieu
nay khong giong nh viec tnh toan cac khong gian vect
RGB mot cach trc tiep.
Do o van e la nh ngha gradient ( bien o va hng)
cua vect c c nh ngha:
1
1
1
]
1

1
1
1
]
1

) , (
) , (
) , (
) , (
) , (
) , (
) , (
y x B
y x G
y x R
y x c
y x c
y x c
y x c
B
G
R
Theo sau la mot trong nhng cach ma khai niem gradient
c m rong vi cac ham vect. Lai noi ham vo hng
f(x,y) gradient la mot vect ma no ch hng cua t le
thay oi cc ai tai toa o (x,y).
Lay r, g va b la cac vect n v theo cac truc R, G va B cua
khong gian mau RGB va nh ngha cac vect :
b
x
B
g
x
G
r
x
R
u

b
y
B
g
y
G
r
y
R
v

13
at cac so
xx
g
, xy
g
va yy
g
c nh ngha nh sau:
2 2 2
x
B
x
G
x
R
u u u u g
T
xx


2 2 2
y
B
y
G
y
R
v v v v g
T
yy


y
B
x
B
y
G
x
G
y
R
x
R
v u v u g
T
xy


Nh rang R, G va B va cac gia tr g la cac ham cua x va
y. Dung chu y nay nh c the hien trong Di Zenzo [1986]
noi rang hng cua t le thay oi cc ai cua c(x,y) la
mot ham (x,y)
( )
( )
1
1
]
1


yy xx
xy
g g
g
y x
2
tan
2
1
,
1

va gia tr cua t le thay oi (bien o cua gradient) theo


cac hng c cho bi cac phan t cua
Chu y rang
) , ( y x
va
) , ( y x F

la cac anh co cung kch c


vi anh au vao. Cac phan t
) , ( y x
la cac goc tai moi
iem gradient c tnh va
) , ( y x F

la anh gradient .
( ) ( ) ( ) [ ]
2 / 1
2 2 2 cos
2
1
,

'

+ + +

sn g g g g g y x F
xy yy xx yy xx
V
) tan( tan t
neu
0

la mot nghiem cua phng trnh tan


-1
trc, v vay
2 /
0
t
. Them vao o
) , ( ) , ( y x F y x F
+

, v the F
can c tnh ch vi cac gia tr cua trong na khoang
) , 0 [
. S that la phng trnh tan
-1
cho hai gia tr lech nhau 90
0
ngha la phng trnh nay nghiem ung vi moi cap (x,y)
co hng vuong goc nhau. Doc theo mot trong nhng
hng nay F la cc ai, va no se la cc tieu neu theo
hng con lai, v vay ket qua nhan c bang cach chon
gia tr ln nhat tai moi iem. ao ham cua cac ket qua
nay hi dai, va chung ta se t at c muc ch c ban
cua thao luan hien tai cua chung tabang cach chi tiet no
ay. ao ham rieng phan co the c tnh toan bang
toan t Sobel a thao luan trc. Ham theo sau se tnh
gradient cua anh RGB:
[VG, A, PPG] = colorgrad(f,T)
trong o f la anh RGB, T la ngng t chon nam trong
khoang [0 1] (Mac nh la 0); VG la mot vecto gradient RGB
) , ( y x F

; A la anh goc
) , ( y x
tnh bang rad; va PPG la
gradient c tnh bang cac lay tong cac gradient 2D cua
cac khong gian mau rieng biet. Cac gradient nay la
( ) y x R ,
,
( ) y x G ,
,
( ) y x B ,
trong o toan t c nh ngha trong
phan trc. Tat ca ao ham can e thc hien phng trnh
tren c thc hien trong ham colorgrad s dung toan t
14
Sobel. Cac ngo ra VG va PPG c chuan hoa trong khoang
[0 1] bi colorgrad va chung c at ngng e VG(x,y) =0
oi vi nhng gia tr nho hn hoac bang T va VG(x,y) =
VG(x,y) oi vi nhng trng hp khac. Chu thch tng t
oi vi PPG.
III. Thuat toan tach bien anh mau
15
Tnh cac ao ham x
va y cua 3 thanh
phan anh vi mat
na c chon
Tnh cac tham so vector
gradient g
xx
, g
yy
, g
xy
==>
Tnh
va chuan hoa trong khoang [0,1]
So sanh vi
ngng T ta c
anh tach bien
Anh
RGB
IV. Chng trnh M_File
IV.1. Ham colorgrad
function[VG,A,PPG]=colorgrad(f,dec,T)
%COLORGRAD TINH VECTO GRADIENT CUA MOT ANH MAU RGB.
%function[VG,A,PPG]=colorgrad(f,T) tinh vector gradient,VG, va
mang goc
%tuong ung,VA, (don vi radians) cua anh RGB f. No cung tinh PPG,
gradient
%ket hop tu cac vung mau ma co duoc bang cach cong cac gradient
hai chieu
%cua cac vung mau don. Ngo vao T la muc nguong trong tam [0 1].
Neu no duoc
%xac dinh trong bien ngo vao thi gia tri cua VG va PPG duoc lay
nguong bang
%cach tao ra VG(x,y)=0 khi gia tri <=T va VG(x,y) =VG(x,y)doi voi
gia tri
%khac.Nhung lenh tuong tu cung duoc ung dung cho PPG. Neu T
khong xac dinh
%trong doi so vao thi T duoc set = 0. Ca hai gradient ngo ra duoc
xac dinh
%trong tam [0 1]
%dec la loai mat na
if (ndims(f)~=3)| (size(f,3)~=3)
error('Input image must be RGB');
end
%Tinh toan vi phan theo phuong x va y cua ba anh thanh
phan su dung toan tu
%Mat na
sh=fspecial(dec);
sv=sh';
Rx=imfilter(double(f(:,:,1)),sh,'replicate');
Ry=imfilter(double(f(:,:,1)),sv,'replicate');
Gx=imfilter(double(f(:,:,2)),sh,'replicate');
Gy=imfilter(double(f(:,:,2)),sv,'replicate');
Bx=imfilter(double(f(:,:,3)),sh,'replicate');
By=imfilter(double(f(:,:,3)),sv,'replicate');
%Tinh cac thong so cua vec to gradient
gxx=Rx.^2+ Gx.^2+ Bx.^2;
gyy=Ry.^2+ Gy.^2+ By.^2;
16
gxy=Rx.*Ry+ Gx.*Gy+ Bx.*By;
A=0.5*(atan(2*gxy./(gxx-gyy+eps)));
G1=0.5*((gxx+gyy)+(gxx-gyy).*cos(2*A)+2*gxy.*sin(2*A));
%Bay gio lap lai voi goc + pi/2. Sau do chon gia tri cuc dai tai
moi diem.
A = A+pi/2;
G2=0.5*((gxx+gyy)+(gxx-gyy).*cos(2*A)+2*gxy.*sin(2*A));
G1=G1.^0.5;
G2=G2.^0.5;
%Tinh VG bang cach lay gia tri cuc dai tai moi diem (x,y)va
sau do chuan hoa
% trong khoang [0 1]
VG=mat2gray(max(G1,G2));
%Tinh toan cac gradient tren tung vung mau
RG=sqrt(Rx.^2+Ry.^2);
GG=sqrt(Gx.^2+Gy.^2);
BG=sqrt(Bx.^2+By.^2);
%Thuc hien viec tong hop bang cach cong cac ket qua rieng
biet va chuan hoa
%trong khoang [0 1]
PPG=mat2gray(RG+GG+BG);
%Tinh ket qua khi co nguong
if nargin==3
VG=(VG>T).*VG;
PPG=(PPG>T).*PPG;
end
%Ket thuc ham colorgrad
IV.2 Chng trnh tach bien anh mau
%file thuc hien tach bien anh mau
clc;
close all;
clear all;
f=imread('lacda.jpg');
T=0.5;
figure(1);
subplot(3,1,1);
imshow(f);
str={['RGB image, threshold T=' num2str(T)]};
title(str);
[VG_S,A_S,PPG_S]=colorgrad(f,'sobel',T);
17
subplot(3,1,2);
imshow(VG_S);
title('Sobel mask');
hold on;
[VG_P,A_P,PPG_P]=colorgrad(f,'prewitt',T);
subplot(3,1,3);
imshow(VG_P);
title('Prewitt mask');
hold on;
V. Ket qua
Hnh 5. Hai mat na Sobel va Prewitt vi ngng T
= 0
18
Hnh 6. Hai mat na Sobel va Prewitt vi ngng T
= 0.25
Hnh 7. Hai mat na Sobel va Prewitt vi ngng T
= 0.5
19
Hnh 8. Hai mat na Sobel va Prewitt vi ngng T
= 0.75
Hnh 9. Hai mat na Sobel va Prewitt vi ngng T
= 1
20
TAI LIEU THAM KHAO
1. Rafael C. Gonzalez, Richard E. Woods, Steven L. Eddins
Digital Image Processing using Matlab NXB Prentice Hall
2004.
2. Nguyen Kim Sach - X ly anh va Video so
NXBKHKT 1997.
3. Image Processing Toolbox cua Matlab Version 6.5
21

You might also like