Professional Documents
Culture Documents
Xu Ly Anh Trong Matlab
Xu Ly Anh Trong Matlab
sAturAtion v cc gi tr thnh phn (HSV ) . Cc phng php khc cho vic biu din
mu c gi l khng giAn mu .
- Toolbox cung cp mt tp cc th tc chuyn i giA cc khng giAn mu . Cc
hm x l nh t chng coi d liu mu sc di dng RGB tuy nhin , tA c th x l
mt nh m s dng cc khng giAn mu khc nhAu bng cch chuyn i n sAng
RGB sAu chuyn i nh c x l tr li khng giAn mu bAn u .
- c v ghi d liu nh
- Phn ny s gii thiu cch c v ghi d liu nh
1. c mt nh ho
- Hm imreAd c mt nh t bt k nh dng no c tr gip trong bt k chiu su
bit no c tr gip . Hu ht cc file nh s dng 8 bt chA gi tr cA pixel . Khi
chng c c vo b nh , MAtlAb chA chng di dng uint8 . Vi cc file tr gip
16 bt d liu , PNG v TIFF , MAtlAb chA chng di dng uint16
Ch : Vi nh ch s , imreAd lun lun c bn mu vo trong mt chui thuc
lp double , thm ch mng nh t n thuc lp uint8 hAy uint16
- Chng hn , on m sAu s c mt nh RGB vo khng giAn lm vic cA MAtlAb
lu trong bin RGB
RGB=imreAd(footbAll.jpg);
- Trong v d ny , imreAd s nhn rA nh dng file s dng t tn file . TA cng c
th ch rA nh dng file nh mt thAm s trong hm imreAd . MAtlAb tr gip rt nhiu
nh dng ho thng dng chng hn : BMP , GIF , JPEG , PNG , TIFF bit
thm cc kiu gi hm v thAm s truyn vo , xem tr gip online cA MAtlAb .
c nhiu nh t mt file ho
- MAtlAb tr gip mt s nh dng file ho chng hn nh : HDF v TIFF , chng
chA nhiu nh . Theo mc nh , imreAd ch tr gip nh u tin trong file . nhp
thm cc nh t file , s dng c php c tr gip bi nh dng file . Chng hn , khi
c s dng vi TIFF , tA c th s dng mt gi tr ch s vi imreAd ch rA nh
m tA mun nhp vo . V d sAu y c mt chui 27 nh t mt file TIFF v lu
nhng nh An trong mt mng 4 chiu . TA c th s dng hm iminfo xem bAo
nhiu nh c lu tr trong file :
mri = uint8(zeros(128,128,1,27)); % preAllocAte 4-D ArrAy
for frAme=1:27
[mri(:,:,:,frAme),mAp] = imreAd('mri.tif',frAme);
end
- Khi file chA nhiu nh theo mt s kiu nht nh chng hn theo th t thi giAn , tA
c th lu nh trong MAtlAb di dng mng 4 chiu . Tt c cc nh phi c cng kch
thc .
2. Ghi mt nh ho
- Hm imwrite s ghi mt nh ti mt file ho di mt trong cc nh dng c tr
gip . Cu trc c bn nht cA imwrite s yu cu mt bin nh v tn file . Nu tA gp
mt phn m rng trong tn file , MAtlAb s nhn rA nh dng mong mun t n . V
d sAu ti mt nh ch s X t mt file MAt vi bn mu kt hp vi n mAp sAu
ghi nh xung mt file bitmAp .
loAd clown
whos
NAme
X
cAption
mAp
Size
200x320
2x1
81x3
Bytes ClAss
512000 double ArrAy
4 chAr ArrAy
1944 double ArrAy
+ Tn cA file nh
+ nh dng file nh
+ S version cA nh dng file
+ Ngy sA i file gn nht
+ Kch thc file tnh theo byte
+ Chiu rng nh tnh theo pixel
+ Chiu cAo nh tnh theo pixel
+ S lng bt trn mt pixel
+ Kiu nh : RGB, ch s
- Chuyn i nh dng cc file nh
- thAy i nh dng ho cA mt nh , s dng hm imreAd c mt nh v
sAu lu n vi hm imwrite ng thi ch rA nh dng tng ng .
- minh ho , v d sAu y s dng hm imreAd c mt file BMP vo khng
giAn lm vic .SAu , hm imwrite lu nh ny di nh dng PNG
bitmAp = imreAd('mybitmAp.bmp','bmp');
imwrite(bitmAp,'mybitmAp.png','png');
- c v ghi nh DICOM
- Toolbox x l nh bAo gm tr gip cho vic thAo tc vi nh s ( DigitAl ImAging )
v nh y hc (CommunicAtion in Medicine ) .
1. c d liu nh t mt file DICOM
- c mt d liu nh t mt file DICOM , s dng hm icomreAd . Hm ny c
cc file tun theo c trng DICOM nhng c th c c cc file khng theo chun
chung no
- V d sAu y c mt nh t mt file DICOM mu i km vi toolbox .
I = dicomreAd('CT-MONO2-16-Ankle.dcm');
xem d liu nh , s dng hm hin th cA toolbox imshow hoc imview ( Do d
liu nh l s 16 bt c du , tA phi s dng cu trc t chuyn i vi mi hm hin
th )
imview(I,[])
2. c MetAdAtA t mt file DICOM
- Cc file DICOM bAo gm cc thng tin c gi l MetAdAtA . Nhng thng tin ny
m t tc tnh cA d liu nh n nm gi nh : kch thc , chiu , chiu su bt . Thm
10
.
TA c th s dng cu trc metAdAtA c tr li bi hm dicominfo ch nh file
DICOM tA mun c s dng hm dicomreAd . Chng hn , tA c th s dng on m
sAu y c metAdAtA t mt file DICOM mu v sAu truyn metAdAtA ti
hm dicomreAd c nh t file :
info = dicominfo('CT-MONO2-16-Ankle.dcm');
I = dicomreAd(info);
3. Ghi d liu ln mt file DICOM
- ghi d liu ln mt file DICOM , s dng hm dicomwrite . V d sAu ghi mt nh I
ti file DICOM Ankle.dcm
dicomwrite(I,'h:\mAtlAb\tmp\Ankle.dcm')
Ghi metAdAtA ln mt file DICOM
Khi tA ghi d liu nh ln mt file DICOM , hm dicomwrite bAo gm mt tp hp nh
nht cA cc trng trong metAdAtA c yu cu bi kiu cA i tng thng tin
DICOM ( IOD ) m tA Ang to . dicomwrite tr gip 3 kiu DICOM IOD :
+ SecondAry cApture ( mc nh )
+ MAgnetic resonAnce
+ Computed tomogrAphy
- TA c th ch r mAtAdAtA no tA mun ghi ln file bng cch truyn ti hm
dicomwrite mt cu trc metAdAtA nhn c t hm dicominfo
info = dicominfo('CT-MONO2-16-Ankle.dcm');
I = dicomreAd(info);
dicomwrite(I,'h:\mAtlAb\tmp\Ankle.dcm',info)
- Trong trng hp ny , hm dicomwrite ghi thng tin trong cu trc metAdAtA info ln
mt file DICOM mi . Khi ghi d liu ti file , c mt s trng m dicomwrite phi cp
nht . Chng hn , dicomwrite phi cp nht ngy thng sA i cA file mi . minh
ho , so snh ngy sA i cA metAdAtA gc vi ngy sA i file trong file mi :
info.FileModDAte
Ans =
24-Dec-2000 19:54:47
11
12
13
14
15
imshow('moon.tif');
Khi s dng cu trc ny th d liu nh khng c nhp vo trong khng giAn lm
vic . Tuy nhin ,tA c th mAng nh vo trong khng giAn lm vic bng cch s dng
hm getimAge . Hm ny s nhn d liu nh t hAndle cA mt i tng nh hin ti .
Chng hn :
moon = getimAge;
S gn d liu nh t moon.tif vo bin moon .
II . X l trn c s vng chn ( Region BAsed Processing )
- Trong phn ny , tA s xem xt nhng khA cnh sAu :
+ Bng thu ng : Cung cp cc thut ng c s dng trong cc php x l
+ Ch nh r mt vng tA quAn tm : M t lm sAo ch rA mt vng quAn tm s
dng hm roipoly
+ Lc mt vng : Din t lm sAo p t mt php lc ln mg vng nht nh cA
nh s dng hm roifilt2
+ T y mt vng : S dng hm roifill t y mt vng chn
1. Bng cc thut ng :
Tn thut ng
Din t
BinAry mAsk
Filling A region
L qu trnh x l in y ( hAy t mu )
mt vng nht nh bng cch ni suy gi
tr pixel t vin cA vng . Qu trnh x l
ny c th c s dng to mt i
tng trong mt nh dng nh bin mt
khi chng c thAy th vi gi tr c
trn vi vng nn
Filtering A region
16
nh . Chng hn , tA c th p t mt s
php lc iu chnh cng ln mt vng
cA nh
Ni suy
MAsked filtering
ThAo tc ch p t mt php lc ln mt
vng quAn tm trong mt nh c phn
bit bng mt n nh phn . Gi tr c lc
c tr li cho cc pixel m mt n nh
phn chA gi tr 1 , gi tr khng c lc
c tr v cho cc pixel m mt n nh
phn chA gi tr 0
BW = roipoly(I,c,r)
BW = roipoly(I)
BW = roipoly(x,y,I,xi,yi)
[BW,xi,yi] = roipoly(...)
[x,y,BW,xi,yi] = roipoly(...)
Din gii
+ BW=roipoly(I,c,r) tr li mt vng quAn tm c lA chn bi hnh A gic c m
t bi vc t c v r . BW l mt nh nh phn c cng kch thc vi nh bAn u .
+ BW=roipoly(I) : Hin th nh I trn mn hnh v tA ch rA vng chn vi tr chut .
Nu b quA I , roipoly hot ng trn nh trc hin ti . S dng click chut thm
cc nh ti A gic . Bng cch nhn BAckspAce hoc Delete xo cc nh chn
trc . Khi chn xong , nhn Enter kt thc vic chn
+BW=roipoly(x,y,I,xi,yi) : S dng vc t x v y to lp h to khng giAn khng
mc nh . xi ,yi l vc t c cng chiu di ch rA cc nh cA A gic nh cc v tr
trong h to ny .
+ [BW , xi,yi] = roipoly() tr li to cA A gic trong xi , yi . Ch rng roipoly
lun lun to rA mt A gic kn .
+ [x,y,BW,xi,yi]=roipoly() tr li XDAtA v YdAtA trong x v y , mt n nh trong
BW v nh cA A gic trong xi v yi
- Nu roipoly c gi khng c thAm s rA , nh kt qu s c hin th trn mt hnh
mi .
Lp tr gip
- nh u vo I c th thuc lp uint8 , uint16 hoc double . nh rA BW thuc lp
logicAl . Tt c cc u vo v rA khc thuc lp double
V d
I = imreAd('eight.tif');
c = [222 272 300 270 221 194];
r = [21 21 75 121 121 75];
BW = roipoly(I,c,r);
imshow(I)
figure, imshow(BW)
b Cc phng php lA chn khc
18
19
20
I2 = roifilt2(h,I,BW);
imshow(I)
figure, imshow(I2)
Ch nh thAo tc lc
- Hm roifilt2 cng cho php tA ch nh mt hm ring tAo tc trn vng quAn tm .
V d sAu s dng hm imAdjust lm sng mt phn cA nh
1. c mt nh
I = imreAd('cAmerAmAn.tif');
2. To mt n : Trong v d ny , mt n l mt nh nh phn chA ch . nh mt n phi
c ct c cng kch thc vi nh c lc
BW = imreAd('text.png');
mAsk = BW(1:256,1:256);
3. To b lc
f = inline('imAdjust(x,[],[],0.3)');
4. Gi hm roifilt2 , ch rA nh c lc , mt n v b lc . nh kt qu I2 c ch nh b
khc trn n
I2 = roifilt2(I,mAsk,f);
imshow(I2)
3. in y mt vng
- TA c th s dng hm roifill in y mt vng quAn tm , tuyn tnh hA t bin
cA vng . Hm ny s hu ch cho vic chnh sA nh , bAo gm xo cc chi tit ngoi
hoc gi to
- Hm roifill thc thi vic in y s dng mt phng php tuyn tnh ho trn c s
cA phng trnh LAplAce . Phng php ny dn n vng c in mt nht c
th .
- Vi roifill , tA lA chn mt vng quAn tm bng tr chut . Khi lA chn xong , hm
roifill tr li mt nh vi vng c chn b in y
- V d sAu s dng hm roifill sA nh . ng vin cA vng c chn c hin
th l mu trn nh gc
loAd trees
I = ind2grAy(X,mAp);
imshow(I)
21
I2 = roifill;
imshow(I2)
C php cA hm roifill
J = roifill(I,c,r)
J = roifill(I)
J = roifill(I,BW)
[J,BW] = roifill(...)
J = roifill(x,y,I,xi,yi)
[x,y,J,BW,xi,yi] = roifill(...)
Din gii
- Hm roifill in y trong mt vng A gic trong mt nh cng . N tuyn tnh
mt cch mt m cc gi tr pixel t phA vin cA A gic vo phA trong A gic
bng cch gii phng trnh LAplAce . Hm roifill c th c s dng , chng hn
xo mt i tng nh trong mt nh
+ J=roifill(I,c,r) : in y mt A gic c ch rA bi cc vc t c cng chiu di c v
r . Chng chA to hng - ct cA cc pixel trn cc nh cA A gic .
+ J=roifill(I) : Hin th nh I trn mn hnh v tA lA chn vng A gic bng tr
chut . Nu b quA I , hm thAo tc trn nh Ang chn . S dng phm BAckspAce
hoc Delete xo cc nh trc chn . Khi chn xong , dng phm Enter kt
thc chn
+ J=roifill(I,BW) : S dng BW ( mt nh nh phn cng kch thc vi I ) nh mt mt
n . Hm roifill s in y vng trong I tng ng vi cc pixel khc 0 trong BW . Nu
c nhiu vng , roifill thi hnh tuyn tnh ho trn mi vng c lp
+[J , BW ]=roifill() : tr v mt n nh phn c s dng tnh ton pixel no I s
in y . BW l mt nh nh phn c cng kch thc vi I
+ J=roifill(x,y,I,xi,yi) : S dng vc t x v y thnh lp mt h to khng giAn
khng mc nh . xi , yi c cng di ch rA nh cA A gic
+ [x,y,J,BW,xi,yi]=roifill() : tr li XdAtA v YdAtA trong x v y , nh rA J , mt n
nh BW v nh A gic trong hAi vc t xi , yi .
Lp tr gip
- nh vo I uint8 , uint16 hoc double . BW c th l bt c kiu s hoc logicAl .
22
V d
I = imreAd('eight.tif');
c = [222 272 300 270 221 194];
r = [21 21 75 121 121 75];
J = roifill(I,c,r);
imshow(I)
figure, imshow(J)
III X l nh m
1. Bng thut ng
Tn thut ng
Din gii
deconvolution
Distortion operAtor
2. Th no l lm m ?
A - Nguyn nhn cA s m
- S lm m hAy s phAi nht cA mt nh c th gy rA bi nhiu tc nhn :
+ Chuyn ng trong khi cApture nh - bi cAmerA hoc khi thi giAn l sng nhiu
c s dng - bi vt
+ Ngoi vng tiu c cA ng knh , s dng mt ng knh c gc m rng , s hn lon
cA mi trng , thi giAn l sng ngn s lm gim s lng phtn c bt gi
(cAptured)
23
b - Cc ch chng m nh
- Mt nh b m hAy b phAi nht c th c m t vn tt bi phng trnh g=Hf+n
trong
+ g : nh b m
+ H : Tc nhn lm mo cng c gi l PSF .
+ f : nh gc
+ n : Nhiu ph , c to rA trong qu trnh nhn nh , n lm hng nh
Ch : nh f thc t khng tn ti . nh ny i din cho bc nh m tA c nu tnh
trng thu nhn nh l hon ho
Tm quAn trng cA PSF
- DA trn ch ny , tc v chnh cA vic chng lm m l Deconvolve nh b m
vi PSF . minh ho , v d ny s ly 3 nh khng b m v c lm m chng bng
cch convolve n vi PSF . V d s dng hm fspeciAl to mt PSF m phng mt
chuyn ng m , ch rA chiu di cA m tnh bng pixel ( LEN=31 ) v gc m tnh
theo ( THETA=11) . Mt khi PSF c to , v d s dng hm imfilter convolve
PSF vi nh gc I to nh b lm m Blurred .
I = imreAd('peppers.png');
I = I(60+[1:256],222+[1:256],:); % crop the imAge
figure; imshow(I); title('OriginAl ImAge');
LEN = 31;
THETA = 11;
PSF = fspeciAl('motion',LEN,THETA); % creAte PSF
Blurred = imfilter(I,PSF,'circulAr','conv');
figure; imshow(Blurred); title('Blurred ImAge');
3. S dng cc hm khi phc nh m
- Toolbox x l nh cA MAtlAb gm c 4 hm khi phc nh m bAo gm :
+deconvwnr : S dng b lc Wiener
+ deconvreg : S dng b lc c quy tc ho
+ deconvlucy : S dng gii thut Lucy-RichArdson
+ econvblind : S dng gii thut blind deconvolution
24
25
2. To hm PSF
LEN = 31;
THETA = 11;
PSF = fspeciAl('motion',LEN,THETA);
3. To s m gi trn nh
Blurred = imfilter(I,PSF,'circulAr','conv');
figure; imshow(Blurred);title('Blurred ImAge');
4. Kh m cho nh
wnr1
deconvwnr(Blurred,PSF);
figure;imshow(wnr1);
title('Restored, True PSF');
26
Tinh ch kt qu
- TA c th tc ng ln kt qu bng cch cung cp cc gi tr cho cc thAm s tu chn
c tr gip bi hm deconvwnr .
b - Kh m vi b lc c quy tc ho
- S dng hm deconvreg kh m mt nh s dng b lc c quy tc ho . Mt b
lc kiu ny c th c s dng hiu qu khi thng tin v nhiu ph c bit mt cch
hn ch
- minh ho , v d ny m phng vic lm m mt nh s dng mt hm PSF lc
GAussiAn vi mt nh ( s dng imfilter ) . Nhiu ph trong nh c m phng bng
cch thm vo mt nhiu GAussiAn cA bin V vo nh b m ( s dng hm imnoise )
1. c mt nh vo trong khng giAn lm vic . V d ny s ct nh gim kch thc
cA nh .
I = imreAd('tissue.png');
I = I(125+[1:256],1:256,:);
figure; imshow(I); title('OriginAl ImAge');
27
2. To hm PSF lm m nh
PSF = fspeciAl('gAussiAn',11,5);
3. Lm m nh v thm nhiu vo nh
Blurred = imfilter(I,PSF,'conv');
V = .02;
BlurredNoisy = imnoise(Blurred,'gAussiAn',0,V);
figure;imshow(BlurredNoisy);title('Blurred And Noisy ImAge');
28
29
30
2. To hm PSF
PSF
lm m nh
fspeciAl('gAussiAn',5,5);
3. To m nh v thm nhiu vo nh
Blurred = imfilter(I,PSF,'symmetric','conv');
V = .002;
BlurredNoisy = imnoise(Blurred,'gAussiAn',0,V);
figure;imshow(BlurredNoisy);title('Blurred And Noisy ImAge');
4.
dng
hm
devconlucy khi
phc nh gc , ch rA
hm PSF c s
31
figure; imshow(luc1);
title('Restored ImAge');
trn deconvolution
hm
deconvblind kh
m mt nh . Gii thut
ny c th c s
dng
dng
hiu
qu
khi
v m hoc nhiu c
bit
Hm
2. To hm PSF lm
m nh
32
PSF = fspeciAl('motion',13,45);
figure; imshow(PSF,[],'notruesize'); title('OriginAl PSF');
3. To m trn nh
Blurred
imfilter(I,PSF,'circ','conv');
figure; imshow(Blurred); title('Blurred ImAge');
33
34
6. Tinh ch gi tr c
35
IV Mu sc
1. Bng thut ng
Tn thut ng
Din gii
ApproximAtion
36
nh m cc gi tr pixel cA n c nh
s trc tip trong mt bn mu . Trong
MAtlAb , mt nh ch s c i din bi
mt mng thuc lp uint8 , uint16 hoc
double . Bn mu lun l mt mng
mx3 thuc lp double .
Intensity imAge
RGB imAge
nh m trong mi pixel c ch nh
r 3 mu R,G,B . Trong MAtlAb , mt nh
RGB c i din bi mt mA trn
mxnx3 thuc lp uint8 , uint16 hoc double
.
37
38
39
40
41
4. Dithering
- Khi s dng hm rgb2ind hoc imApprox gim s lng mu trong mt nh , nh
kt qu trng xu hn nh gc bi v mt s mu b mt . Hm rgb2ind v imApprox c
hAi u thc hin dithering tng s lng mu trong nh kt qu . Dithering thAy i
mu sc cA cc pixel mt vng ln cn v vy , mu sc trung bnh cA mi vng xp
x mu gc .
- Chng hn mt v d xem dithering lm vic rA sAo , xem xt mt nh chA mt s
pixel mu cAm ti m khng c mt s tng hp chnh xc trong bn mu . to
rA
sc thi cAm ny , toolbox lA chn s kt hp mu t bn mu . N s trn 6 pixel
li vi nhAu thnh mt nhm , xp x sc thi hng . T mt khA cnh no , cc pixel
xut hin nh nhng sc thi chnh xc nhng nu tA nhn gn nh , tA c th thy s
phi trn cA cc sc thi . V d ny np mt nh 24 bt sAu , s dng hm rgb2ind
to rA hAi nh ch s ch vi 8 mu cho mi nh :
1. c mt nh v hin th n :
rgb=imreAd('onion.png');
imshow(rgb);
2. To mt nh ch s vi 8
mu m khng trn
[X_no_dither,mAp]=rgb2ind(rgb,8,'nodither');
figure, imshow(X_no_dither,mAp);
3. To mt nh ch s 8
mu c trn
42
[X_dither,mAp]=rgb2ind(rgb,8,'dither');
figure, imshow(X_dither,mAp);
rng
nh
dithering c s lng
c v hi nht . nh
43
+ Xem xt mt s hm cho vic chuyn i giA khng giAn mu RGB v 3 khng giAn
mu thng dng khc l : YIQ , HSV v YCbCr .
A - Chuyn i giA cc khng giAn mu c lp thit b
- Cc thut ng chun c dng m t mu sc nh : hue , sng v cng sng
l ch quAn v lm cho s so snh tr nn kh khn .
- Nm 1931 , u bAn quc t v ri CIE nghin cu s tip nhn mu sc cA con
ngi v pht trin mt chun c gi l chun CIE XYZ . Chun ny nh nghA 1
khng giAn 3 chiu vi 3 gi tr c gi l 3 gi tr tc nhn ( trisimulus vAlues )
nh nghA mt mu sc . Chun ny vn cn c s dng rng ri cho n ngy nAy .
- Trong nhng thp k cA c trng u tin , CIE pht trin mt vi c trng
khng giAn mu ph c gng cung cp mt biu din mu tng t nhng thch hp
tt hn so vi mt s mc ch cA XYZ . Chng hn , nm 1976 , mt n lc c
c mt khng giAn mu ng nht c th tng quAn vi th hin trc quAn cA
mu sc CIE to rA khng giAn mu L*A*b .
- Toolbox cung cp tr gip cho vic chuyn i giA cc khng giAn mu khng ph
thuc thit b trong s cc chun cA CIE . Thm vo , toolbox cng tr gip chuyn
i giA cc khng giAn mu CIE v khng giAn mu RGB . Khng giAn mu ny
c nh nghA bi mt nhm cc nh cng nghip m t c tnh cA mt mn hnh
PC tiu biu .
Nhng chuyn i c tr gip
Khng giAn mu
Din gii
Chuyn i c tr gip
XYZ
xyY
uvL
44
sng
uvL
L*A*b
L*ch
sRGB
45
Size
Bytes ClAss
1x1
I_xyz
384x512x3
I_rgb
384x512x3
46
47
48
V - Bin i nh
- S biu din ton hc cho mt nh thng l mt hm vi hAi bin khng giAn f(x,y) .
Gi tr cA hm ti mt v tr ( x,y ) i din cho cng cA nh ti v tr . Thut
ng bin i ( trAnsform ) nhm ni n mt s biu din ton hc tng t cA nh .
1. Bng thut ng
Tn thut ng
Din gii
Discrete trAnsform
L bin i m gi tr u vo v rA cA n
l cc mu ri rc , bin i ny thng
thun li cho cc thAo tc cA my tnh .
Bin i ri rc c ng dng bi
MAtlAb v toolbox x l nh bAo gm
bin i Fourier ri rc ( DFT ) v bin i
c-sin ri rc ( DCT )
Frequency domAin
49
SpAtiAl domAin
TrAnsform
1
f (m, n) 2 F (1, 2 )e j1m e j2n d12
4 1 2
50
51
- Gi tr nh tm cA th l F(0,0) , l tng cA tt c cc gi tr cA hm
f(m,n) . th cng ch rA rng F (1 , 2 ) c nhiu nng lng hn vng tn s ngAng
so vi tn s ng . iu ny phn nh s thc rng cc vng giAo ngAng cA hm
f(m,n) ( horizontAl cross sections ) l cc xung hp trong khi cc vng giAo ng cA
hm ny l cc xung rng . Xung hp mAng nhiu ni dung tn s hn xung hp .
Mt cch khc biu din trc quAn bin i Fourier l hin th hm log | F (1 , 2 ) |
nh mt nh :
52
- S dng hm lgArit gip cho vic nhn r c tnh cA bin i Fourier cc vng
m gi tr F (1 , 2 ) gn bng 0 . minh ho , hy xem biu din trc quAn cc bin
i Fourier sAu :
b- Bin i Fourier ri rc
53
- MAtlAb s dng cc hm fft , fft2 v fftn s dng thut ton bin i Fourier nhAnh
cho vic tnh ton DFT mt chiu , hAi chiu v N chiu tng ng . Cc hm ifft, ifft2
v ifftn tnh ton DFT ngc .
QuAn h vi bin i Fourier
- TA c quAn h biu din bng cng thc sAu :
54
V d :
1. To mA trn f tng t nh hm f(m,n) ch nht xt trc y . Hm f(m,n) bng 1
trong vng ch nht v bng 0 trong vng khc . S dng mt nh nh phn thAy th
cho f(m,n)
f = zeros(30,30);
f(5:24,13:17) = 1;
imshow(f,'notruesize')
2. Tnh ton v biu din trc quAn bin i Fourier bi nhng lnh sAu y :
F = fft2(f);
55
F2 = log(Abs(F));
imshow(F2,[-1 5],'notruesize'); colormAp(jet); colorbAr
56
57
58
C=
8.0000
9.0000 15.0000
7.0000
6.0000
9.0000
2.000
59
4. quAn st v tr
cA mu trong nh ,
tm gi tr pixel ln nht
sAu nh nghA
60
3. Bin i c-sin ri rc
- Bin i c-sin ri rc ( DCT ) biu din mt nh nh l tng cA cc hm sin vi bin
v tn s bin i . Hm dct2 tnh DCT hAi chiu cA mt nh . DCT c tnh cht m
vi cc nh in hnh , hu ht cc thng tin c nghA v nh c tp trung vo cc h
s cA DCT . V l do ny , DCT thng c s dng trong cc ng dng nn nh .
Chng hn ,DCT l trung tm cA gii thut nn nh theo chun quc t thng c bit
vi tn JPEG ( tn ny do nhm pht trin t rA : Joint PhotogrAphic Experts Group )
- DCT hAi chiu cA mA trn A c kch thc MxN c nh nghA nh sAu :
61
- Biu thc DCT ngc c th c xem xt khi coi rng mi mA trn A kch thc MxN
nh l tng cA MN hm c dng :
- Nhng hm
ny c gi l
nhng hm c
s cA DCT . H
s DCT Bpq c
th c xem nh
trng
cho
mi hm c s .
Vi cc mA trn
8x8 , 64 hm c
s c minh
ho bi nh sAu :
62
63
64
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0];
B2 = blkproc(B,[8 8],'P1.*x',mAsk);
I2 = blkproc(B2,[8 8],'P1*x*P2',T',T);
imshow(I), figure, imshow(I2)
65
Chng hn , tch phn ng (line integrAl ) cA f(x,y) theo chiu thng ng l php
chiu cA f(x,y) trn trc x , tch phn ng theo chiu nm ngAng l php chiu cA
f(x,y) trn trc y . Hnh sAu m t cc php chiu dc , ngAng cA hm hAi chiu :
66
67
68
69
70
71
Hm irAdon sAu c gi to li nh I
IR=irAdon(R,thetA);
- Trong v d trn , php chiu c tnh ton t nh gc I . Trong hu ht cc ng dng ,
khng c nh gc no c t php chiu c nh dng . Chng hn , tomogrAphy
hp th tiA X , php chiu c to rA bng cch o c s suy gim pht x xuyn quA
mt mu vt l cc gc khc nhAu . nh gc c th xem nh vng giAo nhAu vi
vt mu , trong , cng i din cho mt cA vt mu . Php chiu c thu
thp s dng phn cng c bit v sAu nh bn trong vt mu c to li vi hm
irAdon . iu ny ngn ngA vic trn nh trong cc vng trong sut khc bn trong vt
mu .
- Hm irAdon to li mt nh t php chiu song sogn . Trong hnh hc chiu song song ,
mi php chiu c to thnh bi mt tp hp cc tch phn ng thng quA mt nh
mt gc nht nh .
- Hnh sAu y minh ho hnh hc song song c s dng rA sAo trong k thut hp th
tiA X . Ch rng s lng b pht v s lng sensor l bng nhAu n . Mi sensor s
o s pht x c pht rA t cc b pht tng ng v suy gim pht x cho php o
c mt khi lng cA vt th . iu ny tng ng vi tch phn ng c tnh
ton trong bin i RAdon .
73
74
75
76
77
Din gii
AliAsing
78
Bicubic interpolAtion
BilineAr interpolAtion
Geometric operAtion
InterpolAtion
NeArest-neighbor interpolAtion
Cc gi tr pixel rA c gn gi tr cA
pixel nm trong mt vng gn pixel .
2. Ni suy
- Ni suy l qu trnh s dng c lng mt gi tr nh mt v tr giA cc pixel .
Chng hn , nu tA thAy i kch thc mt nh , n s chA nhiu pixel hn nh gc ,
toolbox s dng s ni suy tnh gi tr cho cc pixel thm vo . Hm imresize v
imrotAte s dng ni suy hAi chiu thc hin thAo tc cA mnh . Hm improfile
cng s dng s ni suy ho .
Cc phng php ni suy
- Toolbox s l nh cung cp 3 cch ni suy ho
+ Ni suy cc pixel gn nht ( neArest neighbor interpolAtion )
+ Ni suy song tuyn tnh ( BilineAr interpolAtion )
79
80
81
Ch nh kch thc cA nh rA
- TA c th ch rA kch thc cA nh rA bng cch truyn mt vc t chA s lng
hng v ct cA nh sAu cng . Nhng lnh sAu y to mt nh rA Y vi 100 hng v
150 ct .
Y = imresize(X,[100 150])
Ch : Nu kch thc c ch rA khng c cng t l vi nh vo , nh rA s b bin
dng
Ch inh phng php ni suy c s dng
- Theo mc nh , hm imresize s dng phng php ni suy cc pixel gn nht
( neArest neighbor interpolAtion ) tnh gi tr cc pixel cA nh rA . Tuy nhin , tA
c th ch nh cc phng php ni suy khc .Bng sAu y lit k cc phng php ni
suy c tr gip theo th t cA phc tp .
Gi tr thAm s
neArest
82
bilineAr
biculic
Trong v d sAu , hm imresize s dng phng php ni suy song tuyn tnh :
Y=imresize(X, [100 150],bilineAr);
S dng b lc ngn chn hin tng rng cA
- Vic gim kch thc ( hnh hc ) cA mt nh c th gy rA nhng nh hng nht
nh ln nh chng hn nh hin tng xut hin rng cA ti bin cA nh . iu ny l
do thng tin lun b mt khi tA gim kch thc mt nh . Rng cA xut hin nh nhng
gn sng trong nh sAu cng .
- Khi gim kch thc cA nh s dng ni suy song tuyn tnh hoc song khi , hm
imresize t ng p t mt b lc thng thp ln nh trc khi ni suy . iu ny
gim nh hng cA rng cA trong nh rA . TA c th ch rA kch thc cA b lc ny
hoc ch rA mt b lc khc thAy th .
Ch : Thm ch s dng mt b lc thng thp , cht lng cA nh vn b nh
hng do thng tin lun b mt trong qu trnh ni suy
- Hm imresize khng p t mt b lc thng thp ln nh nu phng php ni suy cc
pixel gn nht c s dng . Phng php ni suy ny bAn u c s dng vi cc
nh ch s v b lc thng thp khng thch hp cho kiu nh ny .
- TA cng c th ch rA mt b lc t to thAy cho cc b lc c sn .
Hm imresize
C php cA hm ny nh sAu :
B = imresize(A,m)
B = imresize(A,m,method)
B = imresize(A,[mrows ncols],method)
B = imresize(...,method,n)
B = imresize(...,method,h)
Din gii
+ B=imresize(A,m) : Tr li mt nh B ln gp m ln nh A ( kch thc hnh hc ) s
dng phng php ni suy mc nh ( neArest neighbor interpolcAtion ) . A c th l
mt nh ch s , nh en trng , RGB hoc nh nh phn . Nu m nm giA 0 v 1 , B s
nh hn A . Nu m ln hn 1 , B s ln hn A .
83
84
I = imreAd('circuit.tif');
J = imrotAte(I,35,'bilineAr');
imshow(I)
figure, imshow(J)
Ch nh kch thc cA nh rA
Theo mc nh , hm imrotAte to mt nh rA ln c th bAo gm ton b cc
pixel cA nh gc . Cc pixel nm ngoi bin cA nh gc c gn gi tr 0 nh th nn
mu en trong nh rA . Nu tA ch rA chui crop nh mt thAm s , hm imrotAte s
xn nh rA ti kch thc nh nh vo .
Hm imrotAte
C php cA n nh sAu :
B = imrotAte(A,Angle)
B = imrotAte(A,Angle,method)
B = imrotAte(A,Angle,method,bbox)
85
Din gii
+B=imrotAte(A,Angle) : QuAy nh A mt gc Angle theo chiu ngc chiu kim
ng h , s dng phng php ni suy cc pixel gn nht . quAy theo chiu kim
ng h hy truyn gi tr m cho thAm s Angle
+ B=imrotAte(A,Angle,method) : QuAy nh A mt gc Angle theo chiu kim ng h
s dng phng php ni suy c ch rA trong method .
+ B=imrotAte(A,Angle,method,bbox) : QuAy nh A mt gc Angle . ThAm s bbox
ch rA hp bin cA nh tr v . bbox l mt chui c th nhn cc gi tr sAu :
crop : nh rA B ch bAo gm phn trung tm cA nh c quAy v c cng kch
thc vi nh A
loose : ( Mc nh ) : nh rA B bAo gm ton b nh c quAy v ln hn nh A .
imrotAte thit lp gi tr 0 cho cc pixel ngoi bin cA nh gc .
V d
- V d ny c mt nh quAng ph nh sng mt tri c lu trong nh dng FITS v
quAy n v cn n theo chiu ngAng .
I = fitsreAd('solArspectrA.fts');
I = mAt2grAy(I);
J = imrotAte(I,-1,'bilineAr','crop');
imshow(I)
figure, imshow(J)
86
5. Xn nh ( imAge cropping )
- trch mt vng ch nht cA mt nh , s dng hm imcrop . Hm imcrop chp
nhn hAi thAm s chnh :
+ nh cn xn
+ Cc gc cA hnh ch nht xc nh vng xn
- Nu tA gi hm imcrop m khng ch rA hnh ch nht , tA c th xn nh theo cc
tng tc . Trong trng hp ny ,tA s dng tr chut chn vng ch nht cn xn
bng cch nhn v gi phm chut tri v di chuyn chn vng xn . Khi chn xong
th nh chut . Trong v d sAu , tA hin th mt nh v gi hm imcrop . Hm imcrop
hin th nh trong mt hnh v i tA v vng ch nht cn xn trn nh .
imshow circuit.tif
I=imcrop;
Imshow(I);
87
Hm imcrop
- C php cA n nh sAu :
I2 = imcrop(I)
X2 = imcrop(X,mAp)
RGB2 = imcrop(RGB)
I2 = imcrop(I,rect)
X2 = imcrop(X,mAp,rect)
RGB2 = imcrop(RGB,rect)
[...] = imcrop(x,y,...)
[A,rect] = imcrop(...)
[x,y,A,rect] = imcrop(...)
Din gii
- Hm imcrop xn mt nh theo mt hnh ch nht c ch nh .
I2=imcrop(I) ;
X2=imcrop(X,mAp);
RGB2=imcrop(RGB);
Hm imcrop s hin th nh I v i tA ch rA hnh ch nht cn xn bng chut
- Nu tA b quA cc thAm s , hm imcrop thAo tc trn nh cA trc hin ti .
- ch nh mt hnh ch nht tA dng tr chut nh ni trn
- TA cng c th ch rA kch thc cA hnh ch nht m khng thAo tc trc tip nh
cc c php sAu :
I2 = imcrop(I,rect)
X2 = imcrop(X,mAp,rect)
RGB2 = imcrop(RGB,rect)
Trong : rect l mt vct bn phn t dng [xmin ymin width height ], nhng gi tr
ny c ch rA trong to khng giAn . ch nh cc to khng theo to
88
89
90
- Cc tu chn cA hm
imtrAnsform
cho
91
[B,XDATA,YDATA] = imtrAnsform(...)
[B,XDATA,YDATA] = imtrAnsform(...,pArAm1,vAl1,pArAm2,vAl2,...)
Din gii
+ B=imtrAnsform(A,TFORM ) : bin i nh A theo cu trc c nh nghA trong
TFORM . Cu trc ny c tr v t hm mAketform hoc cp2tform . Nu ndims(A)>2
nh cc nh RGB th cng mt bin i khng giAn 2 chiu c p t ti tt c cc
mt phng theo chiu cAo hn .
Khi s dng c php ny , hm imtrAnsform t ng dch gc cA nh rA nh rA c
th c hin th nhiu nht c th .
+ B=imtrAnsform(A,TFORM , INTERP) : ch rA dng cA php ni suy c s dng .
INTERP c th l mt trong cc gi tr neArest, bicubic hoc bilineAr .
Tng t , INTERP c th l mt cu trc c tr v t hm mAkeresAmpler . Tu
chn ny cho php iu khin nhiu hn ln vic ly mu li ( resAmpling ) .
+[B,XDATA,YDATA]= imtrAnsform() : tr v v tr cA nh rA B trong khng giAn
X-Y . XDATA v YDATA cc vct hAi thnh phn . Nhng thnh phn cA XDATA ch
rA to x cA ct u v cui cA B . Nhng thnh phn cA YDATA ch rA to y
cA ct u v cui cA B . Bnh thng , hm imtrAnsform tnh ton XDATA v
YDATA t ng v vy B chA ton b nh bin i A . Tuy nhin , tA c th
chng tnh ton t ng ny xem di y :
[B,XDATA,YDATA] = imtrAnsform(...,pArAm1,vAl1,pArAm2,vAl2,...) : Ch rA cc
thAm s iu khin nhiu khA cnh khc nhAu cA bin i khng giAn . Bng sAu lit
k cc thAm s m tA c th ch rA .
ThAm s
Din gii
UDAtA
VDAtA
92
YdAtA
XYScAle
Size
93
FillVAlues
V d
+ V d 1
p mt php dch chuyn ngAnh ti mt nh cng ;
I = imreAd('cAmerAmAn.tif');
tform = mAketform('Affine',[1 0 0; .5 1 0; 0 0 1]);
J = imtrAnsform(I,tform);
imshow(I), figure, imshow(J)
94
+ V d 2
Mt php bin i chiu c th nh x mt hnh vung thnh mt hnh bn cnh . Trong
v d ny , thit lp mt to vo cho nh vo t y hnh vung sAu bin i
nh sAng mt hnh 4 cnh vi cc nh (0,0) ,(1,0) ,(1,1) v (0,1) thnh mt hnh 4 cnh
vi cc nh l (-4,2) ,(-8,3) ,(-3,-5) v (6,3) . T vi my xm v s dng ni suy song
khi . To nh rA vi kch thc bng vi nh vo .
I = imreAd('cAmerAmAn.tif');
udAtA = [0 1]; vdAtA = [0 1]; % input coordinAte system
tform = mAketform('projective',[ 0 0; 1 0; 1 1; 0 1],...
[-4 2; -8 -3; -3 -5; 6 3]);
[B,xdAtA,ydAtA] = imtrAnsform(I, tform, 'bicubic', ...
'udAtA', udAtA,...
'vdAtA', vdAtA,...
'size', size(I),...
'fill', 128);
subplot(1,2,1), imshow(udAtA,vdAtA,I), Axis on
subplot(1,2,2), imshow(xdAtA,ydAtA,B), Axis on
VI Phn tch v lm giu nh ( nng cAo cht lng nh )
1. Bng thut ng
Tn thut ng
Din gii
AdAptive filter
Contour
ng trong mt nh dc theo gi tr
cng cA cc pixel nh bng hng s
Edge
95
S o c nh lng cA mt nh hoc
mt vng nh .
HistogrAm
Noise
Profile
Mt tp hp cc gi tr cng ly t cc
im cch u nhAu dc theo mt on
ng thng hoc ng gp khc trong
mt nh . Vi cc im khng nm tm
cA pixel , gi tr ny c ni suy .
QuAdtree decomposition
2. Cc gi tr pixel v thng k
- Toolbox x l nh cung cp mt vi hm tr li thng tin v d liu to nn mt nh .
Nhng hm ny tr li thng tin v d liu nh theo nhiu dng khc nhAu bAo gm :
+ D liu cA nhng pixel c lA chn ( hm pixvAl , impixel )
+ D liu dc theo mt ng trong mt nh ( hm improfile )
+ th ng cA d liu nh (hm imcontour)
+ Biu ( histogrAm ) cA d liu nh ( hm imhist )
+ Thng k vn tt d liu nh ( cc hm meAn2,std2,corr2)
96
97
0.1294
0.5176
0.7765
0.6118
0.1294
0
0.4196
b- Intensity Profile
- Hm improfile tnh ton v v cc gi tr cng dc theo mt ng thng hoc mt
hnh gp khc trong mt nh . TA c th cung cp to cA ng thng nh mt thAm
s vo cA hm hoc nh nghA ng thng gp khc s dng chut . Trong nhng
trng hp ny , hm improfile s dng ni suy tnh ton gi tr cA cc pixel cch
u nhAu dc theo mt ng ( mc nh , hm ny s dng phng php ni suy cc
pixel gn nht tuy nhin tA c th thAy i phng php khc Xem c php c th cA
hm ) . Hm improfile lm vic tt nht trn cc nh RGB v nh cng .
98
Hm improfile hin th mt
th cA cc d liu
99
100
101
d- Biu
(
nh
ImAge
HistogrAm )
- Mt biu nh l mt biu ch rA s phn b cA cng cA mt nh ch s hoc
nh cng . Hm biu nh imhist to rA biu ny bng cch to rA n thng
( bins ) cch u nhAu , mi ci i din cho mt vng cc gi tr d liu . SAu n
tnh ton s lng cc pixel cho mi vng .
- V d sAu y hin th mt nh cA cc ht go v biu vi 64 thng . Biu hin
th mt nh xung quAnh 100 tng ng vi nn xm ti trong nh .
1. c vo mt nh v hin th n :
I = imreAd('rice.png');
imshow(I)
2. Hin th biu
cA nh
103
e- Thng k vn tt
- TA c th tnh thng k chun cA mt nh s dng cc hm meAn2,std2 v corr2 .
meAn2 v std2 tnh lch trung bnh v lch tiu chun cA cc phn t cA mt
mA trn . Hm corr2 tnh h s tng quAn giA hAi mA trn c cng kch thc .
- bit chi tit cc hm ny , xem c php cA chng trong Online Help
f- o c tnh cht cA mt vng nh
- TA c th s dng hm regionprops tnh ton cc tnh cht cA mt vng nh .
Chng hn , hm regionprops c th o c nhng tnh cht nh : vng , trng tm v
khung bAo vin cA vng m tA ch rA .
3. Phn tch nh
- K thut phn tch nh tr li thng tin v cu trc cA mt nh . Cc k thut ny bAo
gm :
+ Pht hin cnh ( Edge Detection )
+ Tm vt cA ng bin ( BoundAry TrAcing )
+ QuAdtree Decomposition
104
105
BW1 = edge(I,'sobel');
BW2 = edge(I,'cAnny');
imshow(BW1)
figure, imshow(BW2)
thnh
nn
( bAckground )
- V d sAu s dng
hm
bwtrAceboundAry
tm
ng bAo cA mt
i tng trong
106
vt
cA
3. Tnh cc to
hng v ct cA
cA i tng tA
mun
bwboundAry s
tm
vt
dng im ny nh l im bt u cA vic tm vt .
dim = size(BW)
107
col = round(dim(2)/2)-90;
row = min(find(BW(:,col)))
4. Gi hm bwtrAceboundAry tm vt cA bin t im chn . Nh mt thAm s
cn thit , tA phi ch rA mt nh nh phn , cc to hng v ct cA im bt u v
hng cA bc u tin . V d ch rA hng bc ( North )
boundAry=bwtrAceboundAry (BW, [row ,col],N);
5. Hin th nh gc v s dng cc to tr v v th trn nh
imshow(I)
hold on;
plot(boundAry(:,2),boundAry(:,1),'g','LineWidth',3);
108
109
110
111
112
figure, imhist(I,64)
th
chnh v
iu
biu cA n .
113
nh
Ch nh gii hn iu chnh
- TA c th ch rA khong cA cc gi tr vo v gi tr rA s dng hm imAdjust . TA ch
rA nhng khong ny trong hAi vct v truyn n hm imAdjust nh l thAm s .
Vct u tin ch rA cc gi tr cng thp v cAo m tA mun nh x . Vct th
hAi ch rA t l quA tA mun nh x chng
Ch : TA phi ch rA cc cng nh l cc gi tr giA 0 v 1 bt k nh vo I thuc
lp no .
- Chng hn , tA c th gim tng phn cA mt nh bng cch thu hp khong d
liu . Trong v d di y , o chong cA ngi n ng c mu en l mt s chi
tit no . Hm imAdjust nh x khong [0,51] trong nh vo thuc lp uint8 thnh nh rA
[128,255] . iu ny lm sng ng k nh rA v cng m rng khong ng ( dynAmic
rAnge ) cA phn ti trong nh gc , lm cho n d dng nhn thy cc chi tit trn chic
o chong . Ch rng , tuy nhin bi v tt c cc gi tr ln hn 51 trong nh gc c
nh x thnh 255 ( trng ) trong nh rA , nh rA xut hin nh vA b rA .
I = imreAd('cAmerAmAn.tif');
J = imAdjust(I,[0 0.2],[0.5 1]);
imshow(I)
figure, imshow(J)
114
115
116
117
118
hp cc tile gn nhAu s dng ni suy song tuyn thnh loi b cc ArtifAct bAo gm
cc ng bin .
- trnh m rng nhiu c trong nh , tA c th s dng hm AdApthisteq vi mt s
thAm s tu chn gii hn tng phn c bit trn cc vng thun nht .
- minh ho , v d ny s dng hm AdApthisted iu chnh tng phn cA
mt nh cng (nh en trng ) . nh gc c tng phn thp vi hu ht cc gi
tr nm giA cA khong cng . Hm AdApthisteq to rA mt nh c cc gi tr
c phn b u trong nh :
I = imreAd('pout.tif');
J = AdApthisteq(I);
imshow(I)
figure, imshow(J)
119
120
121
122
- Vic thm gin tng phn tuyn tnh lm giu nh kt qu bng cch mi rng hn
khong mu . Trong trng hp ny , khong mu c m rng c nh x trong mi
gii ti mt khong chun giA 0.01 v 0.99 bo ho 2%
5- Loi b nhiu
- Cc nh s c th c nhiu loi nhiu khc nhAu . C mt s cch m nhiu c th thm
nhp vo trong nh ph thuc vo vic nh c to rA nh th no . Chng hn :
+ Nu nh c scAn t mt nh c chp trn phim , cc ht trn phim l mt ngun
nhiu . Nhiu c th l kt qu cA vic phim b h hng hoc do cht lng cA
scAnner
+ Nu nh c thu thp trc tip t nh dng s , c ch cA vic thu thp d liu nh
( chng hn nh b pht hin CCD ) c th to rA nhiu
+ S truyn d liu nh cng c th b nhiu tc ng
- Toolbox cung cp mt s cch loi b hoc gim nhiu trong mt nh . Cc cch
khc nhAu c s dng cho cc loi nhiu khc nhAu . Cc cch bAo gm :
+S dng cc b lc tuyn tnh ( LineAr Filter )
+ S dng cc b mediAn ( MediAn Filter )
+ S dng cc b lc thch nghi ( AdAptive Filter )
- m phng tc ng cA cc vn v nhiu ni trn , toolbox cung cp hm
imnoise m tA c th dng thm nhiu vo mt nh .
A- S dng cc b lc tuyn tnh
- TA c th s dng cc b lc tuyn tnh loi b nhiu trong mt nh . Cc b lc ny
chng hn nh b lc trung bnh hoc b lc GAuss l thch hp . Chng hn , mt b lc
trung bnh c s dng loi b cc ht nhiu t mt nh chp trn phim . Do mi
123
2. Thm nhiu vo nh
J = imnoise(I,'sAlt & pepper',0.02);
figure, imshow(J)
124
3]);
figure, imshow(K)
figure, imshow(L)
125
126
nh gc
nh kt qu
VII Cc thAo tc hnh thi
(MorphologicAl OperAtions )
-
Morphology l mt k thut x l nh dA
Din giI
BAckground
Connectivity
Foreground
GlobAl mAximA
GlobAl minimA
Morphology
Mt tp hp rng cA cc thAo tc x l
nh m x l trn cc hnh dng . Cc thAo
tc ny p t mt phn t c cu trc ln
mt nh , to mt nh rA c cng kch
thc vi nh vo . Cc thAo tc hnh thi
c bn nht l gin n ( dilAtion ) v n
mn (erosion )
Neighborhood
Object
PAcked binAry
RegionAl mAximA
RegionAl minimA
Structuring element
128
2. Gin n v xi mn
- Gin n v xi mn l hAi thAo tc x l hnh thi c bn . Gin n cng thm cc
pixel ti vng bin cA cc i tng trong mt nh trong khi xi mn loi b cc pixel
trn vng bin cA cc i tng . S lng pixel c thm vo hoc loi b t cc i
tng trong mt nh ph thuc vo kch c v hnh dng cA phn t cu trc c s
dng x l nh . Phn ny s :
+ Cung cp nhng thng tin c bn v vic cc hm gin n v xi mn hot ng nh
th no
+ M t phn t c cu trc v cch to rA chng
+ M t cch thc hin xi mn
+ M t mt s thAo tc c bn dA trn gin n v xi mn
+ M t cc hm cA toolbox dA trn c s cA gin n v xi mn
A-Tng quAn v DilAtion v Erosion
- Trong cc thAo tc gin n v xi mn , trng thi cA mt pixel no trong nh rA
c quyt nh bng vic p t mt quy tc ln cc pixel tng ng v cc pixel ln
cn trong nh vo . Quy tc ny c s dng x l cc pixel nh nghA thAo tc
gin n hAy xi mn . Bng sAu y lit k cc quy tc cho c hAi php x l ny ;
TAo tc
Quy tc
DilAtion
Gi tr cA cc pixel rA l gi tr ln nht
cA tt c cc pixel trong vng ln cn cA
pixel vo tng ng . Trong mt nh nh
phn , nu bt k pixel no c gi tr 1 ,
pixel rA s l 1
Erosion
Gi tr cA pixel rA l gi tr nh nht cA
tt c cc pixel trong vng ln cn cA
pixel vo tng ng . Nu trong mt nh
nh phn c mt pixel c gi tr 0 th pixel
rA c gi tr 0
129
130
X l cc pixel bin nh
- Cc hm x l hnh thi nh v gc cA phn t cu trc , tm cA n quA cc pixel
quAn tm trong nh vo . Vi cc pixel cnh cA mt nh , cc phn ln cn c nh
nghA bi phn t cu trc c th m rng quA bin cA nh
- x l cc pixel trn bin nh ,cc hm x l hnh thi gn mt gi tr ti nhng pixel
khng xc nh ny ging nh cc hm thm vo nh vi mt s hng v ct no .
Gi tr cA nhng pixel thm vo ny thAy i vi c thAo tc gin n ln xi mn .
Bng sAu y m t quy tc thm ( pAdding ) cho gin n v xi mn trn c nh nh
phn v nh en trng .
ThAo tc
Quy tc
DilAtion
Erosion
131
To phn t cu trc
132
133
seq = getsequence(sel)
seq =
3x1 ArrAy of STREL objects
seq(1)
Ans =
FlAt STREL object contAining 5 neighbors.
Neighborhood:
0
seq(2)
134
Ans =
FlAt STREL object contAining 4 neighbors.
Neighborhood:
0
seq(3)
Ans =
FlAt STREL object contAining 4 neighbors.
Neighborhood:
0
135
136
d- Lm xi mn nh (Eroding An ImAge )
- lm xi mn mt nh , s dng hm imerode . Hm ny nhn hAi thAm s chnh :
+ nh vo l nh cn c x l (en trng , nh phn hAy nh phn ng gi )
+ Mt phn t cu trc c tr v t hm strel hoc mt mA trn nh phn nh nghA
vng ln cn cA phn t cu trc
- Hm imerode cng chp nhn 3 thAm s tu chn l PADOPT , PACKDOP v M .
PADOPT nh hng n kch c cA nh rA . PACKDOPT phn bit nh vo nh l nh
nh phn ng gi ( pAcked binAry imAge ) . Nu l nh nh phn ng gi , M phn bit
s lng cc hng trong nh gc .
- V d sAu lm xi mn mt nh nh phn :
1. c nh vo trong khng giAn lm vic cA MAtlAb
BW1 = imreAd('circbw.tif');
2. To mt phn t cu trc . on m sAu to rA mt phn t cu trc cho .
SE = strel('ArbitrAry',eye(5));
SE=
FlAt STREL object contAining 5 neighbors.
Neighborhood:
1
137
d- Kt hp giA gin n v xi mn
- Gin n v xi mn thng c s dng kt hp thc hin cc thAo tc x l nh .
Chng hn , nh nghA cA m hnh thi ( MorphologicAl Opening ) l mt thAo tc
xi mn tip theo l mt thAo tc gin n s dng cng mt phn t cu trc . Tng
t , nh nghA cA ng hnh thi ( MorphologicAl Closing ) bAo gm mt thAo tc
gin n theo sAu l xi mn cng vi cng phn t cu trc
- SAu y tA s s dng hm imdilAte v imerode minh ho vic bt u mt bin i
hnh thi nh th no . Tuy nhin , lu , toolbox cung cp hm imopen thc hin
x l ny .
M bin i hnh thi
- TA c th s dng m bin i hnh thi lo b cc i tng nh t mt nh trong
khi vn gi nguyn hnh dng v kch thc cA cc i tng ln . Chng hn , tA c
th s dng hm imopen loi b mt ng trn t mt nh , to rA mt nh m ch
chA cc hnh ch nht
- m hnh thi mt nh , thc hin nhng bc sAu y :
1. c nh vo trong khng giAn lm vic cA MAtlAb
W1 = imreAd('circbw.tif');
138
2. To phn t cu trc
SE = strel('rectAngle',[40 30]);
- Phn t cu trc phi ln c th loi b cc ng trn khi tA xi mn nh tuy
nhin khng qu ln khi loi b cc hnh ch nht .
3. Xi mn nh vi phn t cu trc
BW2 = imerode(BW1,SE);
imshow(BW2)
- HAi dng m trn s loi b tt c cc ng cong tuy nhin n lm co cc hnh ch
nht
4. phc hi cc
hnh ch nht vi
kch thc bAn u , gin n nh vA thu c s dng cng phn t cu trc trn
BW3 = imdilAte(BW2,SE);
imshow(BW3
139
e- Cc hm dA trn c s cA gin n v xi mn
- TA s xem xt cc thAo tc x l nh thng dng dA trn c s cA gin n v xi
mn bAo gm :
+ nh khung cho nh ( SkeletonizAtion )
+ Xc nh chu vi
- Bng sAu y lit k cc hm khc trong toolbox thc hin cc thAo tc bin i hnh
thi thng dng dA trn c s cA gin n v xi mn
Hm
Chc nng
Bwhitmisss
V ( AND ) l-gc cA mt nh c xi
mn vi cng mt phn t cu trc v nh
b cA n c xi mn vi mt phn t
cu trc th hAi
ImbothAt
Tr nh gc t mt phin bn ng hnh
thi cA nh . C th c s dng tm
cc mng cng trong mt nh
Imclose
Gin n mt nh v sAu xi mn n s
dng cng mt phn t cu trc
Imopen
Xi mn mt nh sAu gin n n s
dng cng mt phn t cu trc
ImtophAt
Tr mt nh m cu trc t nh gc . C
th c s dng lm tng tng
phn cA mt nh
ng khung cho nh
- l thut ng ch vic bin i tt c cc i tng trong nh thnh cc ng ( b
khung ) m khng thAy i cu trc bAn u cA nh - s dng hm bwmorph .
BW1 = imreAd('circbw.tif');
BW2 = bwmorph(BW1,'skel',Inf);
140
imshow(BW1)
figure, imshow(BW2)
Xc nh cc ng chu vi
- y l thut ng ch vic thAy th tt c cc i tng trong nh bng cc ng chu
vi cA chng . Hm bwperim tnh cc pixel trn chu vi cA cc i tng trong mt nh .
Mt pixel c xem nh trn chu vi nu n tho hAi iu kin :
+ Gi tr pixel bng 1
+ Mt hoc nhiu pixel xung quAnh n c gi tr 0
Chng hn , on m sAu tm cc pixel trn chu vi cA mt nh nhi phn
BW1 = imreAd('circbw.tif');
BW2 = bwperim(BW1);
imshow(BW1)
141
figure, imshow(BW2)
3- Ti to hnh thi nh
- Ti to hnh thi l mt phn khc cA k thut x l hnh thi nh . DA trn gin n ,
ti to hnh thi c 3 tnh cht duy nht :
+ X l trn c s hAi nh , mt nh ghi v mt mt n ng hn l mt nh v mt phn
t cu trc
+ Qu trnh x l c lp li cho n khi n nh
+ Qu trnh x l dA trn c s khi nim v tnh kt ni ( connectivity ) hn l dA
trn c s cA phn t cu trc
- Phn ny s :
+ Cung cp cc thng tin c s v ti to hnh thi v m t cch s dng hm
imreconstruct nh th no
+ M t tnh kt ni cc pixel ( pixel connectivity ) nh hng rA sAo ln ti to hnh
thi
+ M t cch s dng hm imfill - dA trn c s cA ti to hnh thi
+ M t mt nhm cc hm khc dA trn c s cA ti to hnh thi .
A- nh ghi v mt n ( MArker And MAsk )
- X l ti to hnh thi trn mt nh , nh c gi l nh ghi ( mArker ) . Qu trnh
x l dA trn c s cc c tnh cA mt nh khc , nh c gi l mt n
142
12
12
12
12
12
12
8
143
12
12
12
16
16
16
16
16
16
16
16
16
8
8
Ti to hnh thi nh l g ?
144
145
+ 8 kt ni ( 8 connected ) : Cc
pixel c kt ni nu cc cnh
Cc kt ni 3 chiu
+ 6 kt ni : Cc pixel c kt ni nu cc mt cA chng tip xc nhAu
+ 18 kt ni : Cc pixel c kt
ni nu cc mt hoc cc
+ 26 kt ni : Cc pixel c
kt ni nu cc mt , cnh
nhAu
Chn lA mt kt ni
- Kiu cA vng ln cn m tA chn s nh hng n s lng i tng c tm thy
trong mt nh v cc vng bin cA chng . V l do ny , kt qu cA nhiu thAo tc
bin i hnh thi thng khc nhAu ph thuc vo kiu kt ni m tA chn
- Chng hn , nu tA chn kiu 4 kt ni th nh nh phn ny s chA hAi i tng ,
nu tA chn kiu 8 kt ni , nh ch c mt i tng .
0
Ch nh cc kt ni tu chn
- TA c th nh nghA cc vng ln cn bng cch ch rA mt mng 3x3x3x3 cA cc
gi tr 0 ,1 . Cc phn t c gi tr 1 nh nghA kt ni cA ln cn trong quAn h vi
tm cA phn t . Chng hn , mng sAu y nh nghA mt kt ni Bc/NAm c tc
dng ngt mt nh rA nhiu ct c lp .
CONN = [ 0 1 0; 0 1 0; 0 1 0 ]
CONN =
0
147
0;
0;
0;
0;
0;
0;
0];
0;
148
T lp cc l hng trong nh
- Mt thAo tc t lp hAy c s dng l t lp cc l hng ( holes )trong nh. Chng
hn , gi s tA c mt nh nh phn hoc en trng trong cc i tng foreground i
din cho cc hnh cu . Trong nh , nhng i tng ny xut hin nh nhng A . Trc
khi thc hin bt k mt thAo tc x l no , tA mun u tin t y cc l hng ( xem
nh ) s dng hm imfill
-Do thAo tc t lp c s dng rt thng xuyn t lp cc l , hm imfill bAo gm
cc c php c bit tr gip tc thAo tc ny trn c nh nh phn v nh en trng .
Trong c php ny , tA ch cn ch rA thAm s holes , tA khng phi ch rA v tr bt
149
150
151
152