Professional Documents
Culture Documents
Mathlab Cho Xu Ly Anh
Mathlab Cho Xu Ly Anh
1 . nh c nh ch s ( Indexed Images )
- Mt nh ch s bao gm mt ma trn d liu X v ma trn bn mu map . Ma trn d
liu c th c kiu thuc lp uint8,uint16 hoc kiu double . Ma trn bn mu l mt
mng mx3 kiu double bao gm cc gi tr du phy ng nm gia 0 v 1 . Mi hng
ca bn ch ra cc gi tr m : red , green v blue ca mt mu n . Mt nh ch s s
dng nh x trc tip gia gi tr ca pixel nh ti gi tr trong bn mu . Mu sc ca
mi pixel nh c tnh ton bng cch s dng gi tr tng ng ca X nh x ti mt
gi tr ch s ca map . Gi tr 1 ch ra hng u tin , gi tr 2 ch ra hng th hai trong
bn mu
- Mt bn mu thng c cha cng vi nh ch s v c t ng np cng vi
nh khi s dng hm imread c nh .Tuy nhin , ta khng b gii hn khi s dng
bn mu mc nh , ta c th s dng mt k bn mu no . Hnh sau y minh ho
cu trc ca mt nh ch s . Cc pixel trong nh c i din bi mt s nguyn nh x
ti mt gi tr tng ng trong bn mu .
(NH )
Lp v lch ca bn mu ( Colormap Offsets )
- Quan h gia gi tr trong ma trn nh v gi tr trong bn mu ph thuc vo kiu
gi tr ca cc phn t ma trn nh . Nu cc phn t ma trn nh thuc kiu double , gi
tr 1 s tng ng vi gi tr trong hng th nht ca bn mu , gi tr 2 s tng ng
1
vi gi tr trong hng th 2 ca bn mu Nu cc phn t ca ma trn nh thuc
kiu uint8 hay uint16 s c mt lch (offset ) gi tr 0 trong ma trn nh s tng
ng vi gi tr trong hng u tin ca bn mu , gi tr 1 s tng ng vi gi tr
trong hng th 2 ca bn mu .
- lch cng c s dng trong vic nh dng file nh ho tng ti a s lng
mu sc c th c tr gip .
Gii hn trong vic tr gip nh thuc lp unit16
- Toolbox x l nh ca Matlab tr gip c gii hn nh ch s thuc lp uint16 . Ta c
th c nhng nh v hin th chng trong Matlab nhng trc khi x l chng , ta
phi chuyn i chng sang kiu uint8 hoc double . chuyn i ( convert ) ti kiu
double ta dng hm im2double . gim s lng mu ca nh xung 256 mu (uint8 )
s dng hm imapprox .
2. nh cng ( Intensity Images )
- Mt nh cng l mt ma trn d liu nh I m gi tr ca n i din cho cng
trong mt s vng no ca nh . Matlab cha mt nh cng nh mt ma trn
dn , vi mi phn t ca ma trn tng ng vi mt pixel ca nh . Ma trn c th thuc
lp double , uint8 hay uint16 . Trong khi nh cng him khi c lu vi bn
mu , Matlab s dng bn mu hin th chng .
- Nhng phn t trong ma trn cng i din cho cc cng khc nhau hoc
xm . Nhng im c cng bng 0 thng c i din bng mu en v cng
1,255 hoc 65535 thng i din cho cng cao nht hay mu trng .
3. nh nh phn (Binary Images )
-Trong mt nh nh phn , mi pixel ch c th cha mt trong hai gi tr nh phn 0 hoc
1 . Hai gi tr ny tng ng vi bt ho tt ( on hoc off ) . Mt nh nh phn c lu
tr nh mt mng lgc ca 0 v 1 .
4. nh RGB ( RGB Images )
- Mt nh RGB - thng c gi l true-color , c lu tr trong Matlab di dng
mt mng d liu c kch thc 3 chiu mxnx3 nh ngha cc gi tr mu red, green v
blue cho mi pixel ring bit . nh RGB khng s dng palette . Mu ca mi pixel c
quyt nh bi s kt hp gia cc gi tr R,G,B ( Red, Green , Blue ) c lu tr trong
mt mt phng mu ti v tr ca pixel . nh dng file ho lu tr nh RGB ging
2
nh mt nh 24 bt trong R,G,B chim tng ng 8 bt mt . iu ny cho php nhn
c 16 triu mu khc nhau .
- Mt mng RGB c th thuc lp double , uint8 hoc uint16 . Trong mt mng RGB
thuc lp double , mi thnh phn mu c gi tr gia 0 v 1 . Mt pixel m thnh phn
mu ca n l (0,0,0) c hin th vi mu en v mt pixel m thnh phn mu l
(1,1,1 ) c hin th vi mu trng . Ba thnh phn mu ca mi pixel c lu tr cng
vi chiu th 3 ca mng d liu . Chng hn , gi tr mu R,G,B ca pixel (10,5) c
lu tr trong RGB(10,5,1) , RGB(10,5,2) v RGB(10,5,3) tng ng .
- tnh ton mu sc ca pixel ti hng 2 v ct 3 chng hn , ta nhn vo b ba gi tr
c lu tr trong (2,3,1:3) . Gi s (2,3,1) cha gi tr 0.5176 ; (2,3,2) cha gi tr
0.1608 v (2,3,3) cha gi tr 0.0627 th mu sc ca pixel ti (2,3 ) s l
(0.5176,0.1608,0.0627)
- minh ho xa hn khi nim ba mt phng mu ring bit c s dng trong mt
nh RGB , on m sau y to mt nh RGB n gin cha cc vng lin tc ca R,G,B
v sau to mt nh cho mi mt phng ring ca n ( R,G,B ) . N hin th mi mt
phng mu ring r v cng hin th nh gc .
RGB=reshape(ones(64,1)*reshape(jet(64),1,192),[64,64,3]);
R=RGB(:,:,1);
G=RGB(:,:,2);
B=RGB(:,:,3);
imshow(R)
figure, imshow(G)
figure, imshow(B)
figure, imshow(RGB)
3
5. Mng nh nhiu khung hnh ( Multiframe Image Arrays )
- Vi mt vi ng dng , ta c th cn lm vic vi mt tp hp cc nh quan h vi thi
gian hoc khung nhn nh MRI hay khung hnh phim .
- Toolbox x l nh trong Matlab cung cp s tr gip cho vic lu tr nhiu nh trong
cng mt mng . Mi nh c gi l mt khung hnh ( Frame ) . Nu mt mng gi
nhiu frame , chng c ni theo 4 chiu . Chng hn , mt mng vi nm nh c kch
thc 400x300 s l mt mng c kch thc 400x300x3x5 . Mt nh ch s hoc nh
cng nhiu khung tng t s l 400x300x1x5 .
- S dng lnh cat cha cc nh ring r trong mt mng nhiu khung hnh . Chng
hn , nu ta c mt nhm cc nh A1,A2,A3,A4 v A5 , ta c th cha chng trong mt
mng duy nht s dng
A=cat(4,A1,A2,A3,A4,A5 )
- Ta cng c th trch cc khung hnh t mt nh nhiu khung hnh . Chng hn , nu ta
c mt nh nhiu khung hnh MULTI , lnh sau y s trch ra khung hnh th 3
FRM3=MULTI( : , : , : , 3 )
- Ghi nh rng , trong mt mng nh nhiu khung hnh , mi nh phi c cng kch thc
v c cng s mt phng . Trong mt nh ch s nhiu khung , mi nh phi s dng cng
mt bn mu
S tr gip gii hn vi nh nhiu khung
- Nhiu hm trong toolbox hot ng ch trn 2 hoc 3 chiu u tin . Ta c th s dng
chiu th 4 vi nhng hm ny nhng ta phi x l mi khung hnh mt cch c lp .
Chng hn , li gi hm sau s hin th khung hnh th 7 trong mt mng MULTI
imshow(MULTI(: , : , : , 7 ))
- Nu ta truyn mt mng vo hm v mng c nhiu chiu hn s chiu m hm
c thit k hot ng , kt qu c th khng on trc c . Trong mt s trng
hp , hm n gin ch x l khung hnh u tin nhng trong cc trng hp khc , s
hot ng khng to ra kt qu no c ngha .
- Cc hm chuyn i kiu nh
- Vi cc thao tc nht nh , s tht hu ch khi c th chuyn i nh t dng ny sang
dng khc . Chng hn , nu ta mun lc mt mu nh c lu tr di dng nh ch
s , u tin , ta nn chuyn i n thnh dng nh RGB . Khi ta p dng php lc ti nh
RGB , Matlab s lc gi tr cng trong nh tng ng . Nu ta c gng lc nh ch s
4
, Matlab n gin ch p t php lc ti ma trn nh ch s v kt qu s khng c
ngha
Ch : Khi convert mt nh t dng ny sang dng khc , nh kt qu c th khc nh
ban u . Chng hn , nu ta convert mt nh mu ch s sang mt nh cng , kt qu
ta s thu c mt nh en trng .
- Danh sch sau y s lit k cc hm c s dng trong vic convert nh :
+ dither : To mt nh nh phn t mt nh cng en trng bng cch trn , to mt
nh ch s t mt nh RGB bng cch trng (dither )
+ gray2id : To mt nh ch s t mt nh cng en trng .
+ grayslice : To mt nh ch s t mt nh cng en trng bng cch t ngng
+ im2bw : To mt nh nh phn t mt nh cng , nh ch s hay nh RGB trn c
s ca ngng nh sng .
+ ind2gray : To mt nh cng en trng t mt nh ch s
+ ind2rgb : To mt nh RGB t mt nh ch s
+ mat2gray : To mt nh cng en trng t d liu trong mt ma trn bng cch
ly t l gi liu
+ rgb2gray : To mt nh cng en trng t mt nh RGB
+ rgb2ind : To mt nh ch s t mt nh RGB
- Ta cng c th thc hin cc php chuyn i kiu ch s dng c php ca Matlab .
Chng hn , ta c th convert mt nh cng sang nh RGB bng cch ghp ni 3
phn copy ca ma trn nh gc gia 3 chiu :
RGB=cat(3,I,I,I );
- nh RGB thu c c cc ma trn ng nht cho cc mt phng R,G,B v vy nh hin
th ging nh bng xm .
- Thm vo nhng cng c chuyn i chun ni trn , cng c mt s hm m tr
li kiu nh khc nh mt phn trong thao tc m chng thc hin . Xem thm Help
Online
Chuyn i khng gian mu
- Toolbox x l nh biu din mu sc nh cc gi tr RGB ( trc tip trong nh RGB
hoc gin tip trong nh ch s ) . Tuy nhin , c cc phng php khc cho vic biu
din mu sc . Chng hn , mt mu c th c i din bi cc gi tr hue , saturation
5
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
6
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 Size Bytes Class
imwrite(X,map,'clown.bmp')
Ch ra nh dng ph - Tham s c bit
- Khi s dng imwrite vi mt s nh dng ho , ta c th ch ra cc tham s ph .
Chng hn , vi nh dng PNG ta c th ch ra su bt nh mt tham s ph . V d
sau s chi mt nh cng I vi mt file nh 4 bt PNG
imwrite(I,'clown.png','BitDepth',4 );
- bit thm cc cu trc khc ca hm xem phn tr gip trc tuyn ca Matlab .
c v ghi nh nh phn theo nh dng 1 bt
- Trong mt s nh dng file , mt nh nh phn c th c lu trong mt nh dng 1
bt . Nu nh dng file tr gip n ,Matlab ghi nh nh phn nh nh 1 bt theo mc
7
nh . Khi ta c mt nh nh phn vi nh dng 1 bt , Matlab i din n trong khng
gian lm vic nh mt mng lgc .
- V d sau c mt nh nh phn v ghi n di dng file TIFF . Bi v nh dng TIFF
tr gip nh 1 bt , file c ghi ln a theo nh dng 1 bt :
BW = imread('text.png');
imwrite(BW,'test.tif');
kim tra chiu su bt ca file test.tif , gi hm iminfo v kim tra trng BitDepth
ca n :
info = imfinfo('test.tif');
info.BitDepth
ans =
1
Ch : Khi gi file nh phn , Matlab thit lp trng ColorType thnh grayscale
Xem lp lu tr ca file
- Hm imwrite s dng lut sau y quyt nh lp lu tr c s dng trong nh kt
qu :
+ logical : Nu nh dng nh ra ( Output Image ) c ch r l tr gip nh 1 bt , hm
imwrite to mt file nh 1 bt . Nu nh dng nh ra c ch r l khng tr gip nh 1
bt ( nh JPEG ) , hm imwrite chuyn nh ti mt nh thuc lp uint8
+ uint8 : Nu nh dng nh ra c ch r l tr gip nh 8 bt , hm imwrite to mt
nh 8 bt
+uint16 : Nu nh dng nh ra c ch r tr gip nh 16 bt ( PNG hoc TIFF ) , hm
imwrite to mt nh 16 bt . Nu nh dng nh ra khng tr gip nh 16 bt , hm
chuyn i d liu nh ti lp uint8 v to mt nh 8 bt .
+double : Matlab chuyn d liu nh ti dng uint8 v to mt nh 8 bt bi v hu ht
cc file nh s dng nh dng 8 bt .
2. Truy vn mt file ho
- Hm iminfo cho php ta c th nhn c thng tin v mt file nh c tr gip bi
toolbox . Thng tin m ta nhn c ph thuc vo kiu ca file nhng n lun bao gm
nhng thng tin sau :
8
+ 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 vo
, c trng DICOM nh ngha nhiu cc trng metadata khc m t cc c tnh
9
khc ca d liu nh : cch thc c s dng to d liu , thit lp thit b dng
chp nh , thng tin v vic nghin cu Hm dicomread c th x l hu ht tt c cc
trng metadata c nh ngha bi c trng DICOM ( hay chun DICOM )
- c metadata t mt file DICOM , s dng hm dicominfo . Hm ny tr v mt cu
trc metadata m mi trng trong cu trc l mt phn c trng ca metadata trong file
DICOM .
info = dicominfo('CT-MONO2-16-ankle.dcm');
info =
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
S dng dicominfo , c metadata t mt file mi c ghi , kim tra ngy sa i file :
11
info2 = dicominfo('h:\matlab\tmp\ankle.dcm');
info2.FileModDate
ans =
16-Mar-2003 15:32:43
- S hc nh
- S hc nh s ng dng ca cc php ton s hc chun nh : cng , tr , nhn , chia
ln nh . S hc nh c s dng nhiu trong x l nh trong c cc bc ban u ln
cc thao tc phc tp hn . Chng hn , tr nh c th c s dng pht hin s khc
nhau gia hai hoc nhiu nh ca cng mt cnh hoc mt vt .
- Ta c th thc hin s hc nh s dng cc ton t s hc ca Matlab . Toolbox x l
nh bao gm mt tp hp cc hm ng dng cc php ton s hc trn tt c cc con s
khng lp y . Hm s hc ca toolbox chp nhn bt k kiu d liu s no bao gm
uint8 , uint16 hay double v tr li nh kt qu trong cng nh dng . Cc hm thc hin
cc php ton vi chnh xc kp trn tng phn t nhng khng chuyn i nh ti gi
tr chnh xc kp trong khng gian lm vic ca Matlab . S trn s c iu khin t
ng . Hm s ct b gi tr tr v va vi kiu d liu .
1 . Lut ct b trong s hc nh
- Kt qu ca s hc nguyn c th d dng trn s dng cho lu tr . Chng hn , gi tr
cc i ta c th lu tr trong uint8 l 255 . Cc php ton s hc c th tr v gi tr
phn s - khng c biu din bi mt chui s nguyn .
- Cc hm s hc nh s dng nhng lut ny cho s hc nguyn :
+ Gi tr vt qu khong ca kiu s nguyn b ct b ti khong
+ Gi tr phn s c lm trn
Chng hn , nu d liu c kiu uint8 , kt qu tr v nu ln hn 255 ( bao gm Inf ) th
c gn l 255 .
2. Li gi lng nhau ti hm s hc nh
- Ta c th s dng cc hm s hc nh kt hp thc hin mt chui cc php ton .
Chng hn tnh gi tr trung bnh ca hai nh :
C=(A+B) /2
12
Ta c th nhp vo nh sau :
I = imread('rice.png');
I2 = imread('cameraman.tif');
K = imdivide(imadd(I,I2), 2); % not recommended
- Khi c s dng vi kiu uint8 hay uint16 , mi hm s hc ct kt qu ca n trc
khi truyn n cho hm thip theo . S ct b ny c th gim ng k lng thng tin
trong nh cui cng . Mt cch lm tt hn thc hin mt chui cc tnh ton l s
dng hm imlincomb . Hm ny thi hnh tt c cc php ton s hc trong s kt hp
tuyn tnh ca chnh xc kp v ch ct b kt qu cui cng :
K = imlincomb(.5,I,.5,I2); % recommended
- H thng to
- V tr trong mt nh c th c biu din trong cc h thng to khc nhau ph
thuc vo ng cnh . C hai h thng to trong Matlab l : h thng to pixel v h
thng to khng gian .
1. To pixel
- Nhn chung , phng php thun tin nht cho vic biu din v tr trong mt nh l s
dng to pixel . Trong h to ny , nh c x l nh mt li ca cc phn t
ring bit c nh th t t nh ti y v t tri sang phi .
- Vi to pixel , thnh phn u tin r ( hng ) c tng t khi i t trn xung di
trong khi c ( ct ) c tng khi i t tri sang phi . H to pixel l gi tr nguyn v
khong gia 1 v chiu di ca hng hay ct
- C mt tng ng 1-1 gia to pixel v to Matlab s dng m t ma trn . S
tng ng ny to mt quan h ga ma trn d liu nh v cch nh c hin th .
Chng hn , d liu cho pixel trn hng th 5 , ct th 2 c lu tr ti phn t (5,2) ca
ma trn .
2. To khng gian
- Trong h to pixel , mt pixel c x l nh mt n v ring r c phn bit duy
nht bi mt cp to chng hn (5,2 ) . T quan im ny , mt v tr chng hn (5,2)
khng c ngha . Tuy nhin , s hu ch khi ngh n mt pixel nh mt ming v hnh
vung . T quan im ny , mt v tr chng hn (5.3,2.2) l c ngha v c phn bit
vi (5,2) . Trong to khng gian ny , v tr trong mt nh c nh v trn mt mt
phng v chng c m t bng mt cp x v y ( khng phi r v c nh to pixel ) .
13
- H to khng gian ny gn tng ng vi h to pixel trong mt chng mc no
. Chng hn , to khng gian ca im ga ca bt k pixel no c phn bit vi
to pixel ca pixel . Cng c mt vi khc bit , tuy nhin , trong to pixel , gc
trn tri ca mt nh l (1,1 ) trong khi trong to khng gian , v tr ny mc nh l
(0.5,0.5 ) . S khc nhau ny l do h to pixel l ri rc trong khi to khng gian
l lin tc . Cng vy , gc trn tri lun l (1,1 ) trong h pixel , nhng ta c th ch ra
mt im gc khng chnh quy cho h to khng gian . Mt s khc bit d gy nhm
ln na l quy c : th t ca cc thnh phn nm ngang v thng ng c phc v
cho k hiu ca hai h thng . Nh cp trc y , to pixel c i din bi
mt cp (r,c ) trong khi to khng gian c biu din bi (x,y) . Khi c php cho mt
hm s dng r v c , n tham chiu n h to pixel . Khi c php s dng x, y n
ang ngm nh s dng h to khng gian .
S dng h to khng gian khng chnh quy
- Theo mc nh , to khng gian ca mt nh tng ng vi to pixel . Chng
hn , im gia ca pixel ti (5,3) c mt to khng gian l x=3, y=5 ( nh rng th t
ca to b o ngc ) . S tng ng ny lm n gin nhiu hm trong toolbox .
Mt vi hm ban u lm vic vi to khng gian hn l to pixel nhng khi ta
ang s dng to khng gian theo mc nh , ta c th ch ra v tr trong to pixel
- Trong mt s tnh hung , tuy nhin , ta c th mun s dng to khng gian khng
chnh quy ( khng mc nh ) . Chng hn , ta c th ch ra gc trn tri ca mt nh ti
im (19.0,7.5 ) thay cho (0.5,0,5 ) . Nu ta gi mt hm m tr v to cho nh ny ,
to c tr li s l gi tr trong h to khng chnh quy .
- thnh lp to khng chnh quy , ta c th ch ra Xdata v Ydata ca mt nh khi
hin th n . Nhng thuc tnh ny l vc t 2 phn t iu khin khong ca gc quay
ca mt nh . Theo mc nh , mt nh A , Xdata l [1 size(A,2)] , v Ydata l [1
size(A,1)] . Chng hn , nu A l 100 hng x 200 ct , gi tr Xdata mc nh l [1 200]
v Ydata l [1 100] . Nhng gi tr trong nhng vc t ny thc l to ca im gia
ca pixel u tin v cui cng v vy , khong to thc c quay l ln hn , chng
hn , nu Xdata l [ 1 200] th khong ca x l [0.5 200.5] . Nhng lnh sau hin th mt
nh s dng cc gi tr khng mc nh Xdata v Ydata :
A = magic(5);
x = [19.5 23.5];
14
y = [8.0 12.0];
image(A,'XData',x,'YData',y), axis image, colormap(jet(25))
- Hin th nh
1. Dng hm imview
- hin th mt nh s dng hm imview , dng hm imview , ch r nh m ta mun
hin th . Ta c th s dng imview hin th mt nh m c nhp vo trong
khng gian lm vic ca Matlab
moonfig = imread('moon.tif');
imview(moonfig);
Ta cng c th ch nh tn ca file nh nh trong v d sau :
imview('moon.tif');
- File nh phi c mt trong th mc hin ti hoc trong ng dn ca Matlab . Cu trc
ny c th hu ch cho vic qut qua nhiu nh . Tuy nhin , lu , khi s dng cu trc
ny , d liu nh khng c lu trong khng gian lm vic ca Matlab .
- Nu ta gi hm imview m khng ch ra mt k tham s no , n s hin th mt hp
chn file cho php ta ch ra tn file mun hin th .
Xem nhiu nh
- Nu ta ch ra mt file m cha nhiu nh , hm imview ch hin th nh u tin trong
file . xem tt c cc nh trong file , s dng hm imread nhp mi nh vo trong
khng gian lm vic ca Matlab sau gi hm imview nhiu ln hin th mi nh
ring bit
2. Dng hm imshow
- xem nh , ta c th s dng hm imshow thay cho imview . Ta s dng imshow
hin th mt nh c nhp vo trong khng gian lm vic nh v d sau :
moon = imread('moon.tif');
imshow(moon);
Ta cng c th ch ra tn ca file nh nh mt tham s truyn vo cho hm nh v d
sau :
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
15
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 .
Tn thut ng Din t
Binary mask nh nh phn vi cng kch thc nh nh
ta mun x l . Mt n cha gi tr 1 cho
tt c cc pixel thuc trong vng ta quan
tm v cha gi tr 0 cho cc vng khc
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 p t mt php lc ln mt vng nht
nh . Chng hn , ta c th p t mt s
php lc iu chnh cng ln mt vng
ca nh
16
Ni suy Phng php c s dng c lng
mt gi tr nh mt v tr nht nh gia
cc pixel ca nh
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
17
[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
- Hm roipoly cung cp mt cch d dng to mt mt n nh phn . Tuy nhin , ta c
th s dng bt c nh nh phn no lm mt n min l nh c cng kch thc vi
nh ang c lc . Chng hn , gi s ta mun lc nh cng I , ch lc nhng pixel
m gi tr ca n ln hn 0.5 . Ta c th to mt mt n tng ng vi lnh :
18
BW = (I > 0.5);
- Ta cng c th s dng hm poly2mask to mt mt n nh phn . Khng ging hm
roipoly , poly2mask khng yu cu mt nh vo . Ngoi ra , ta cn c th s dng hm
roicolor nh ngha mt vng quan tm trn c s mt mu hoc mt vng cng
no . C php ca hm ny nh sau :
BW = roicolor(A,low,high)
BW = roicolor(A,v)
Din gii
- Hm roicolor la chn mt vng quan tm trong mt nh ch s hoc nh cng v
tr v mt nh nh phn
+ BW=roicolor(A,low,high) : tr v mt vng quan tm c la chn vi nhng pixel
nm trong khong gia low v high trong bn mu sc
BW = (A >= low) & (A <= high)
BW l mt nh nh phn
+BW = roicolor(A,v): Tr v mt vng quan tm c la chn vi nhng pixel trong A
m hp vi cc gi tr trong vc t v . BW l mt nh nh phn .
Lp tr gip
- nh vo A phi thuc lp numeric . nh ra BW thuc lp logical
V d
I = imread('rice.png');
BW = roicolor(I,128,255);
imshow(I);
figure, imshow(BW)
2. Lc mt vng
- Ta c th s dng hm roifilt2 x l mt vng quan tm . Khi ta gi hm roifilt2 , ta
ch ra mt nh cng , mt mt n nh phn v mt b lc . Hm roifilt2 lc nh vo
v tr v mt nh m cha cc gi tr c lc cho cc pixel m mt n nh phn cha
1 v cc gi tr cho cc pixel m mt n nh phn cha 0 . Kiu lc ny c gi l lc c
mt n . C php ca hm roifilt2 nh sau :
J = roifilt2(h,I,BW)
J = roifilt2(I,BW,fun)
J = roifilt2(I,BW,fun,P1,P2,...)
19
Din gii
+ J=roifilt2(h,I,BW ) : Lc d liu trong I vi b lc tuyn tnh hai chiu h . BW l mt
nh nh phn c cng kch thc vi nh gc v c s dng nh mt mt n cho vic
lc . Hm roifilt2 tr v mt nh cha cc gi tr c lc trong vng chn ( hay cc
pixel m BW c gi tr 1 )
+ J=roifilt2(I,BW,fun) : X l d liu trong I s dng hm fun . Kt qu , J cha cc gi
tr c tnh ton cho cc pixel m ti BW cha 1 v gi tr thc trong I cho cc
pixel m ti BW cha gi tr 0 .
+ J=roifilt2(I,BW,fun,P1,P2) Truyn thm cc tham s P1,P2 cho hm fun
Lp tr gip
- Vi cu trc m c cha b lc h , nh vo I c th thuc lp uint ,uint16 hoc double
v nh ra J c cng lp vi nh vo .
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);
h = fspecial('unsharp');
J = roifilt2(h,I,BW);
imshow(J), figure, imshow(J)
hiu r hn v p dng b lc cho mt vng , ta hy xem xt c th mt v d sau :
1. c mt nh :
I = imread('pout.tif');
2. To mt n : S dng chut to vng chn v ly mt n tr v qua BW
3. To b lc
h = fspecial('unsharp');
4. Gi hm roifilt2 , ch ra nh cn lc , mt n v b lc
I2 = roifilt2(h,I,BW);
imshow(I)
figure, imshow(I2)
Ch nh thao tc lc
20
- 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)
I2 = roifill;
imshow(I2)
C php ca hm roifill
J = roifill(I,c,r)
J = roifill(I)
21
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 .
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);
22
imshow(I)
figure, imshow(J)
III X l nh m
1. Bng thut ng
Tn thut ng Din gii
deconvolution X l ngc li vi hiu ng xoy , cun
Distortion operator Ton t m t mt qu trnh nh nhn c
khc vi nh ban u . Distortion c gy
ra bi mt hm PSF ch l mt trong nhng
kiu distortion
Optical transfer function(OTF) Trong vng tn s , OTF m t p ng ca
mt h thng tuyn tnh , v tr khng bin
i vi mt xung vo . OTF l mt bin i
Fourier ca hm PSF
Point spread function ( PSF) Trong min khng gian , PSF din t cp
bc m mt h thng quang hc lm m
mt im sng . PSF l bin i Fourier
ngc ca OTF
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)
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 .
23
+ 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
- Tt c nhng hm ny chp nhn mt PSF v mt nh b m nh l cc tham s chnh
ca n .Vi hai hm u tin , ta cung cp mt s thng tin v nhiu gim s khuch
i nhiu n mc c th trong qu trnh khi phc .
- Hm deconvlucy thi hnh mt cch nhanh chng gii thut Lucy-Richardson . Hm ny
thc hin nhiu vng lp , s dng k thut ti u v thng k Poisson . Vi hm ny , ta
khng cn phi cung cp thng tin v nhiu ph trong nh b bn
24
- Hm deconvblind thi hnh gii thut blind deconvolution m khng cn nhn ra PSF .
Khi ta gi hm deconvblind , ta truyn mt tham s nh l ga tr on bit ban u
PSF . Hm deconvblind tr li mt PSF c khi phc khi phc nh . S thi hnh
s dng cng ch suy gim v lp nh hm deconvlucy .
Ch : Ta c th cn phi thi hnh nhiu qu trnh kh m lp i lp li , mi ln thay
i tham s truyn vo hm kh m cho ti khi thu c mt nh gn xp x vi nh
gc .
- trnh b rung ng trong nh c kh nhiu , ta c th s dng hm edgetaper
tin x l nh trc khi truyn n cho hm kh m .
a - Kh m vi b lc Wiener
- S dng hm deconvwnr kh m mt nh s dng b lc Wiener . B lc ny c th
c s dng rt hiu qu khi c tnh tn s ca nh v nhiu ph l bit t nht l vi
bc . Trong trng hp khng c nhiu , b lc Wiener gim ti b lc o l tng .
- V d sau kh nhiu trong mt nh b m c to trc y , ch ra cng mt hm PSF
c s dng to m . V d ny cng minh ho tm quan trng ca vic bit v PSF
hm gy ra m . Khi chng ta bit chnh xc v PSF , kt qu ca vic kh m c th
kh hiu qu .
1. c mt nh vo khng gian lm vic ( tng tc qu trnh kh m , v d ny cng
ct nh )
I = imread('peppers.png');
I = I(10+[1:256],222+[1:256],:);
figure;imshow(I);title('Original Image');
2. To hm PSF
LEN = 31;
25
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');
Tinh ch kt qu
26
- 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');
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');
27
4. S dng hm deconvreg kh m nh , ch ra hm PSF c s dng lm m nh
v nhiu NP
NP = V*prod(size(I));
[reg1 LAGRA] = deconvreg(BlurredNoisy,PSF,NP);
figure,imshow(reg1),title('Restored Image');
28
- Hm deconvlucy thi hnh vi s iu hp ti gii thut Lucy-Richardson . S dng
nhng iu hp ny ta c th :
+ Gim tc ng ca s m rng nhiu trn mt nh khi phc
+ Gii thch c tnh khng ng nht ca cht lng nh
+ iu khin camera c ht nhiu nn
+ Ci thin phn gii ca nh phc hi bng cch ly mu ph
Gim tc ng ca s m rng nhiu
- S m rng nhiu l mt vn thng gp ca phng php ging cc i ( maximum
likelihood ) c gng lp y d liu gn nht c th . Sau mt s vng lp , nh c khi
phc c th c hnh lm m , c bit vi mt i tng phng c quan st ti t s
tn hiu / nhiu nh . Nhng m ny khng i din cho bt k mt cu trc no trong
nh thc nhng l gi to ca vic lm khp nhiu trong nh qu gn .
- iu khin s m rng nhiu , hm deconvlucy s dng mt tham s gi l
DAMPAR . Tham s ny ch ra mc ngng cho lch ca nh kt qu so vi nh gc .
Vi cc pixel m lch khi vng ln cn ca cc gi tr gc ca chng , vng lp b treo .
- Damping cng c s dng gim rung ( ringing ) hnh dng ca cu trc tn s
cao trong nh khi phc . Ringing khng cn thit n kt qu ca m rng nhiu .
Tnh khng ng nht ca cht lng nh
- Bt k s bin th no ca nh khi phc thc l do d liu c th cha nhng pixel
hng hoc cht lng ca pixel nhn c bin i theo thi gian v v tr . Bng cch
ch ra tham s mng WEIGHT vi hm deconvlucy , ta c th ch ra rng nhng pixel
no trong nh b b qua . b qua mt pixel , gn mt trng lng 0 ti mt phn t
trong mng WEIGHT tng ng vi pixel trong nh .
- Gii thut hi t trn cc gi tr on bit c vi cc pixel hng trn c s ca
thng tin t cc pixel ln cn . S bin i trong p ng pht hin t pixel ti pixel c
th c iu tit bi mng WEIGHT . Thay cho vic gn mt gi tr trng lng 1 ti
cc pixel tt , ta c th ch ra cc gi tr v trng lng m cc pixel tu thuc vo lng
cc flat-field correction
iu khin camera c ht nhiu
- Nhiu trong thit b CCD c hai thnh phn chnh :
+ Phton k n nhiu vi mt phn b Poisson
+ c ton b nhiu vi phn b Gauss
29
- Vng lp Lucy-Richardson thc cht nhn ra kiu nhiu u tin . Ta phi nhn ra kiu
nhiu th hai , nu khng n c th l nguyn nhn cc pixel vi cc phton ti mc
thp s nhn gi tr m .
- Hm deconvlucy s dng tham s vo READOUT iu khin camera c ton b
nhiu . Gi tr ca tham s ny in hnh l tng ca nhiu tng cng v nhiu nn . Gi
tr ca tham s READOUT ch ra mt lch m bo rng tt c cc gi tr u dng .
V d : S dng hm deconvlucy kh m mt nh
- minh ho , v d ny s dng hm deconvlucy , n m phng mt nh b m v
nhiu bng cch convolve mt b lc Gauss vi mt nh ( s dng hm imfilter ) v sau
thm nhiu Gauss ( s dng hm imnoise ) .
1. c mt nh vo khng gian lm vic .
I = imread('board.tif');
I = I(50+[1:256],2+[1:256],:);
figure;imshow(I);title('Original Image');
2. To hm PSF lm m nh
PSF = 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');
30
4. S dng hm devconlucy khi
phc nh gc , ch ra hm PSF c s
dng to m v gii hn s vng lp ti 5 ( mc nh l 10 )
luc1 = deconvlucy(BlurredNoisy,PSF,5);
figure; imshow(luc1);
title('Restored Image');
31
figure; imshow(I); title('Original Image');
2. To hm PSF lm m nh
PSF =
fspecial('motion',13,45);
figure; imshow(PSF,[],'notruesize'); title('Original PSF');
3. To m trn nh
32
Blurred = imfilter(I,PSF,'circ','conv');
figure; imshow(Blurred); title('Blurred Image');
4. Kh m nh , to mt s c lng
ban u cho kch thc ca PSF
- quyt nh kch thc ca PSF ,
kim tra nh m v o chiu rng ca m ( theo pixel ) xung quanh mt vt c hnh dng
nht nh . Trong nh m mu , ta c th o m gn vi ng vin t o ca ngi n
ng . Bi v kch thc ca PSF l quan trng hn gi tr ca n , ta c th ch ra mt
mng ton s 1 nh l PSF ban u .
- Hnh sau y ch ra mt s khi phc m s phng on ban u v kch thc ca PSF
l ging vi kch thc ca PSF gy ra m . Trong ng dng thc , ta c th cn chy
li hm deconvblind , kim tra PSF vi cc kch thc khc nhau cho ti khi nhn c
mt kt qu n nh . PSF c khi phc tr li bi mi ln deconvolution c th cung
cp mt ch dn c gi tr cho kch thc ti u ca PSF .
INITPSF = ones(size(PSF));
[J P]= deconvblind(Blurred,INITPSF,30);
figure; imshow(J); title('Restored Image');
figure; imshow(P,[],'notruesize');
title('Restored PSF');
33
- Mc d hm deconvblind c th kh nhiu nh ti mt khong rt rng , hin tng
rung xung quanh vng tng phn cng trong nh phc hi l khng n nh . Bc
tip theo trong v d lp li qu trnh kh m , c gng t ti mt kt qu tt hn bng
cch :
+ Trnh vng tng phn cao t s x l
+ Ch ra mt gi tr PSF tt hn
5. To mt mng WEIGHT loi tr vng tng phn cao t thao tc kh m . iu
ny c th lm gim rung do tng phn nh trong kt qu .
loi tr mt pixel t s x l , ta to mt mng c cng kch thc vi nh gc v gn
gi tr 0 cho cc pixel trong mng tng ng vi pixel trong nh gc m ta mun loi b .
to mt mng WEIGHT , v d s dng mt s kt hp ca vic pht hin cnh v x
l hnh thi hc pht hin vng c tng phn cao trong nh . Do m trong nh l
tuyn tnh , v d m rng nh ra 2 ln . loi tr cc pixel thuc vng bin ca nh
( mt vng c tng phn cao ) t qu trnh x l , v d ny s dng padarray gn
gi tr 0 ti tt c cc pixel trn bin nh :
WEIGHT = edge(I,'sobel',.28);
se1 = strel('disk',1);
se2 = strel('line',13,45);
WEIGHT = ~imdilate(WEIGHT,[se1 se2]);
34
WEIGHT = padarray(WEIGHT(2:end-1,2:end-1),[2 2]);
figure; imshow(WEIGHT); title('Weight Array');
35
IV Mu sc
1. Bng thut ng
36
Matlab , nh cng c i din bi
mt mng thuc lp uint8 ,uint16 hoc
double . Trong khi nh cng khng
c lu tr vi bn mu , Matlab s
dng bn mu h thng hin th
chng .
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 .
Screen bit depth S lng bt trn mt pixel mn hnh
Screen color resolution S lng cc mu ring bit c th c
to ra bi mn hnh
37
dng cc bt ph tng s lng mc ca mu G . Trong trng hp ny , s lng mu
khc nhau c tr gip l 64536 .
+ 24 : Ch hin th 24 bt s dng 8 bt cho mi mu R, G,B dn n 256 mc cho
mi mu ny , do , n tr gip 16777216 mu khc nhau .
+ 32 : S dng 24 bt lu thng tin mu v s dng 8 bt cn li lu d liu trong
sut ( knh anpha )
b - Chn su bt mn hnh
- Ph thuc vo h thng , ta c th chn su bt mn hnh ta mun . Nhn chung , ch
hin th 24 bt to ra kt qu tt nht . Nu ta mun s dng mt su thp hn 16
bt thng c s dng hn l 8 bt . Tuy nhin , hin th 16 bt c mt s gii hn
( Xem thm help online )
3. Gim s lng mu trong mt nh
- Ta s xem xt lm cch no gim s lng mu trong mt nh ch s hoc nh RGB .
Ta cng xem xt n k thut trn ( dithering ) . Dithering c s dng tng s lng
mu ca mt nh
- Toolbox cung cp cho ta mt s hm sau y gim mu :
+ imapprox : Gim s lng mu c s dng bi nh ch s , cho php ta ch ra s
lng mu trong bn mu mi .
+ rgb2ind : Convert mt nh RGB thnh mt nh ch s , cho php ta ch ra s lng mu
cha trong bn mu mi .
- Tn cc h thng vi hin th 24 bt mu , nh RGB ( true-color ) c th hin th ti
16777216 mu khc nhau . Trn cc h thng vi su bt mn hnh thp hn , nh
RGB vn c hin th kh tt bi v Matlab t ng s dng phi trn v xp x mu
nu thy cn thit .
- nh ch s tuy nhin , c th gy ra vn nu chng c mt s lng mu ln . Nhn
chung , ta nn gii hn nh ch s ti 256 mu v cc l do sau y :
+ Trn h thng vi ch hin th 8 bt , nh ch s vi nhiu hn 256 mu s cn c
phi trn ( dithered ) hoc nh x ( mapped ) v do c th khng hin th tt .
+ Trn mt s h iu hnh ( platform ) , bn mu khng th vt qu 256 mu
+ Nu mt nh ch s c nhiu hn 256 mu , Matlab khng th lu d liu nh trong
mt mng thuc lp uint8 tuy nhin , nhn chung s dng mt mng thuc lp double
thay th lm cho kch thc ca nh ln hn .
38
+ Hu ht cc nh dng file nh gii hn nh ch s ti 256 mu . Nu ta vit mt nh
ch s vi nhiu hn 256 mu ( s dng hm imwrite ) ti mt nh dng khng tr gip
nhiu hn 256 mu , ta s nhn c mt thng bo li
Hm imapprox
- C php ca n nh sau :
[Y,newmap] = imapprox(X,map,n)
[Y,newmap] = imapprox(X,map,tol)
Y = imapprox(X,map,newmap)
[...] = imapprox(...,dither_option)
Din gii
+ [Y,newmap]=imapprox(X,map,n) : Xp x cc mu trong mt nh ch s X c kt
hp vi bn mu map bng cch s dng lng t bin i nh nht ( minumum
variance quantization ) . Hm imapprox tr v nh ch s Y vi bn mu newmap c
nhiu nht n mu .
+ [Y,newmap ]=imapprox(X,map,tol ) : Xp x cc mu trong X v map thng qua lng
t u ( uniform quantization ) . newmap cha nhiu nht ( floor ( 1/tol)+1)^3 mu . tol
phi nm gia 0 v 1
+ Y=imapprox(X,map,newmap ) : Xp x mu trong map bng cch s dng nh x bn
mu tm cc mu trong newmap tng hp tt nht vi cc mu trong map .
+ Y=imapprox(,dither_option ) : cho php hoc cm trn . dither_option l mt chui
c mt hoc nhiu gi tr . Gi tr mc nh c t trong du ({}). Nu dither_option l
{dither} - s trn nu cn thit thu c mt phn gii mu tt hn . Nu
dither_option l (nodither) nh x mi mu trong nh gc ti mu gn nht trong bn
mu mi . Khng c php trn no c thc hin .
Gii thut
- Hm imapprox s dng hm rgb2ind to mt bn mu mi s dng t mu hn
V d
- Xp x nh ch s trees.tif bng mt nh ch s khc ch cha 16 mu
[X, map] = imread('trees.tif');
[Y, newmap] = imapprox(X, map, 16);
imview(Y, newmap)
Hm rgb2ind
39
- Hm ny dng convert mt nh RGB thnh mt nh ch s . C php ca n nh
sau :
[X,map] = rgb2ind(RGB,tol)
[X,map] = rgb2ind(RGB,n)
X = rgb2ind(RGB,map)
[...] = rgb2ind(...,dither_option)
Din gii
- Hm rgb2ind convert nh RGB thnh nh ch s s dng mt trong 3 cch khc nhau :
lng t u , lng t bin i cc tiu v nh x bn mu . Vi tt c cc phng
php ny , rgb2ind cng trn nh tr khi ta ch ra nodither trong dither_option .
+ [X,map]=rgb2ind(RGB,tol) : Convert nh RGB thnh mt nh ch s X s dng lng
t u . map cha nhiu nht (floor(1/tol)+1)^3 mu . tol c gi tr t 0 n 1
+ [X,map]=rgb2ind(RGB,n) : Convert nh RGB thnh nh ch s X s dng lng t
bin i cc tiu , map cha nhiu nht n mu , n phi nh hn hoc bng 65536
+ X=rgb2ind(RGB,map ) : Convert nh RGB thnh nh ch s X vi bn mu map
bng cch hp cc mu trong RGB vi cc mu gn nht trong bn mu map ,
size(map,1) phi nh hn hoc bng 65536
+[]=rgb2ind(,dither_option ) : Cho php hoc cm trn , dither_option l mt chui .
Cc gi tr ca dither_option ging nh trong hm imapprox .
Ch : Nu ta ch ra tol , hm rgb2ind s dng lng t u convert nh . Phng
php ny bao gm vic ct hnh lp phng mu RGB thnh cc hnh lp phng nh
hn c chiu di tol . Chng hn , nu tol=0.1 , cnh ca cc hnh lp phng mi s l
1/10 cnh ca hnh lp phng RGB . Tng s hnh lp phng nh s l :
n=(floor(1/tol)+1)^3)
Mi hnh lp phng i din cho mt mu n trong nh kt qu . V vy , chiu di cc
i ca bn mu l n . Hm rgb2ind b i bt k mu no khng xut hin trong nh
vo v vy bn mu thc c th nh hn n .
- Nu ta ch ra n , hm rgb2ind s dng lng t bin i cc tiu . Phng php ny bao
gm vic ct hnh lp phng RGB thnh cc hnh hp nh hn ( khng cn hnh lp
phng ) vi cc kch thc khc nhau ph thuc vo mu sc c phn ph nh th
no trong nh . Nu nh vo s dng t mu hn s lng mu ta ch ra ( n) , bn mu
ra s nh hn .
40
- Nu ta ch ra map , hm rgb2ind s dng phng php nh x bn mu , n s tm
nhng mu trong map thch hp tt nht vi cc mu trong nh RGB
V d
RGB = imread('peppers.png');
[X,map] = rgb2ind(RGB,128);
imshow(X,map)
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
41
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
[X_dither,map]=rgb2ind(rgb,8,'dither');
figure, imshow(X_dither,map);
42
dithering . Mt s nguy him khi gim mu m khng dither l nh mi c th cha cc
ng vin sai .
43
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
44
chroma v h l hue . Nhng
gi tr ny l kt qu ca s
chuyn i to cc ca
a* v b* trong L*a*b
sRGB Chun c ban hnh bi XYZ v L*a*b
cc nh sn xut ln c
tnh ho m hnh PC
45
- Toolbox bao gm cc hm ta c th s dng chuyn i d liu nh RGB sang mt
s khng gian mu ph thuc thit b v ngc li :
+ YIQ
+ YCbCr
+ Hue , saturation , value ( HSV )
Khng gian mu YIQ
- U ban h thng truyn hnh quc gia M ( NTSC ) nh ngha mt khng gian mu gi
l YIQ . Khng gian mu ny c s dng trong cc my thu hnh M . Mt trong
nhng u im chnh ca nh dng ny l thng tin gam mu xm ( grayscale ) c
tch ra khi d liu mu v vy cng mt tn hiu c th c s dng cho c tivi en
trng v tivi mu .
- Trong khng gian mu NTSC , d liu nh bao gm 3 thnh phn l : nh sng ( Y ) ,
hue ( I ) v saturation ( Q ) . Thnh phn u tin , nh sng i din cho thng tin gam
mu xm , trong khi hai thnh phn cui cng i din cho thng tin v mu sc .
- Hm rgb2ntsc convert bn mu hoc nh RGB thnh khng gian mu NTSC . Hm
ntcs2rgb chuyn i ngc li .
- Chng hn , nhng lnh sau y chuyn i mt nh RGB sang nh NTSC .
RGB = imread('peppers.png');
YIQ = rgb2ntsc(RGB);
- Do nh sng l mt thnh phn ca nh dng NTSC , s chuyn i t RGB sang
NTSC l hu ch cho vic cch ly thng tin xm trong mt nh . Trong thc t , cc
hm rgb2gray v ind2gray s dng hm rgb2ntsc tch thng tin gam mu xm t mt
nh mu .
Chng hn , nhng lnh sau y l tng ng vi vic gi hm rgb2gray :
YIQ = rgb2ntsc(RGB);
I = YIQ(:,:,1);
Khng gian mu YCbCr
- Khng gian mu YCbCr c s dng rng ri trong video s . Trong nh dng ny ,
thng tin v nh sng c lu tr trong mt thnh phn ring Y v thng tin mu sc
c lu tr nh hai thnh phn mu c lp (Cb v Cr ) . Cb i din cho s khc nhau
gia gi tr blue v mt gi tr tham chiu trong khi Cr i din cho s khc nhau gia
thnh phn v mt gi tr tham chiu .
46
- D liu YCbCr c th l dng chnh xc kp nhng khng gian mu thng thch hp
tt nht vi d liu dng uint8 . Vi cc nh uint8 , vng d liu m Y c th nhn l
[16,255] v vng cho Cb , Cr l [16,240] . Hm rgb2ycbcr convert bn mu hoc nh
RGB sang khng gian mu YCbCr , hm ycbcr2rgb chuyn i ngc li .
Chng hn , nhng lnh sau s chuyn i mt nh RGB sang nh dng YCbCr .
RGB = imread('peppers.png');
YCBCR = rgb2ycbcr(RGB);
Khng gian mu HSV
- Khng gian mu HSV ( Hue , Saturation , Value ) thng c s dng bi nhng
ngi cn phi la chn mu sc ( chng hn in hoc v ) t mt a mu do n tng
ng tt hn vi kinh nghim mu sc ca nhng ngi ny hn l khng gian mu RGB
em li . Hm rgb2hsv v hsv2rgb chuyn i nh gia cc khng gian mu RGB v
HSV .
- Khi gi tr Hue nm trong khong 0 v 1 th mu tng ng s bin i t red , yellow ,
green , cyan , blue , magenta v black sang red . V vy , gi tr thc ca red l t 0 n
1 . Cng vy , khi saturation bin thin t 0 n 1 , mu tng ng ( hues ) bin i t
cha bo ho n hon ton bo ho ( unsaturated to fully saturated ) . Cui cng , nu
value ( hay
sng ) bin i
t 0 n 1 ,
mu tng
ng s cng
sng hn .
- Hnh sau y
minh ho
khng gian mu
HSV
47
- Hm rgb2hsv chuyn i bn mu hoc nh RGB sang khng gian mu HSV . Hm
hsv2rgb thi hnh thao tc ngc li . Nhng lnh sau y s convert mt nh RGB sang
khng gian mu HSV .
RGB = imread('peppers.png');
HSV = rgb2hsv(RGB);
- xem xt gn hn khng gian mu HSV , khi lnh sau y s chia mt phng mu
( hue , saturation v value ) ca mt nh HSV :
RGB=reshape(ones(64,1)*reshape(jet(64),1,192),[64,64,3]);
HSV=rgb2hsv(RGB);
H=HSV(:,:,1);
S=HSV(:,:,2);
V=HSV(:,:,3);
imshow(H)
figure, imshow(S);
figure, imshow(V);
figure, imshow(RGB);
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
49
bi tng ca cc tn hiu tun hon vi tn
s thay i
Inverse transform Bin i ngc to thnh nh ban u
Spatial domain Vng khng gian m trong nh c
biu din bi cng ( sng ) ca mt
im trong khng gian . y l biu din
ph bin nht ca d liu nh
Transform Biu din ton hc tng t ca nh .
Chng hn , bin i Fourier l biu din
ca nh nh l tng cc hm phc ca tn
s , pha v bin thay i . Bin i l
hu ch vi nhiu mc ch bao gm
convolution , lm giu nh , nhn dng c
im v nn nh .
2. Php bin i Fourier
- Php bin i Fourier l mt biu din ca nh nh l tng ca cc hm m phc ca
bin , tn s v pha bin i . Bin i Fourier chim mt vai tr quan trng trong cc
ng dng x l nh bao gm : lm giu nh ( hay ci thin cht lng nh enhancement
) , phn tch , phc hi v nn nh .
a - nh ngha php bin i Fourier
- Nu f(m,n) l mt hm vi hai bin khng gian c lp m v n , th bin i Fourier hai
chiu ca hm f(m,n
) c nh ngha bi quan h :
F (1 , 2 ) f (m, n)e j1m e j2 n
m n
Bin 1 v 2 l cc bin tn s . Hm F (1 , 2 ) c gi l biu din trong min tn
s ca hm f(m,n) . N l mt hm phc tun hon vi chu k 2 . Do tnh tun hon ,
nn 1 v 2 thng c chn trong khong - n . Ch rng F(0,0) l tng ca
tt c cc gi tr ca f(m,n) .V l do ny F(0,0) thng c gi l thnh phn khng i
hoc thnh phn mt chiu DC ca bin i Fourier .
- Bin i Fourier ngc c cho bi cng thc :
1
f (m, n) 2 F (1, 2 )e j1m e j2n d12
4 1 2
50
Ni chung , phng trnh ny c ngha rng f(m,n) c th c i din nh l tng v
hn ca cc hm m phc vi cc tn s khc nhau . Bin v pha ca thnh phn tn
s (1 , 2 ) c lu trong F (1 , 2 )
Biu din trc quan bin i Fourier
- minh ho , ta hy xem hm f(m,n) nhn gi tr bng 1 trong khong hnh ch nht
( xem hnh ) v bng 0 ti mi im khc . n gin s f(m,n) c coi nh mt
hm lin tc mc d m, n l cc bin ri rc.
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
-Bin i Fourier trn my tnh l bin i Fourier ri rc ( DFT ) . C hai l do chnh
s dng loi bin i Fourier ny :
+ Hm vo v ra ca bin i Fourier l cc hm ri rc , iu ny thch hp cho cc thao
tc bin i trn my tnh .
+ C mt gii thut nhanh cho vic tnh ton DFT c gi l bin i Fourier nhanh
( FFT )
- DFT thng c nh ngha cho cc hm ri rc f(m,n) khc 0 v m , n ln lt nhn
cc gi tr 0 m M 1 , 0 n N 1
- 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
c- Cc ng dng s dng php bin i Fourier
p ng tn s ca b lc tuyn tnh
- Bin i Fourier ca p ng xung ca b lc tuyn tnh cho php nhn c p ng
tn s ca b lc . Hm freqz2 tnh ton v hin th p ng tn s ca mt b lc . p
ng tn s ca b lc Gauss ch ra rng b lc ny l mt b lc thng thp .
h = fspecial('gaussian');
freqz2(h)
57
Nhn chp nhanh
- Mt tnh cht quan trng ca bin i Fourier l nhn hai bin i Fourier tng ng
vi nhn chp (convolution ) ca hai hm kt hp trong khng gian . Tnh cht ny kt
hp vi bin i Fourier nhanh lm c s cho gii thut nhn chp nhanh .
Ch : FFT da trn phng php nhn chp thng c s dng vi u vo ln .
Vi cc u vo nh , nhn chung s dng hm imfiler s nhanh hn .
- minh ho , v d sau thc hin nhn chp ca A v B trong A l mt ma trn
MxN v B l ma trn PxQ
1. To ra hai ma trn
A = magic(3);
B = ones(3);
2. Thm cc gi tr 0 vo A v B chng c chiu t nht l (M+P-1)x(N+Q-1) ( ch
rng : hm fft2 s nhanh hn nu cc kch thc ca A v B l lu tha ca 2 ) .V d sau
chn thm cc phn t 0 hai ma trn c kch thc 8x8
A(8,8)=0;
B(8,8)=0;
3. Tnh bin i Fourier hai chiu ca A v B s dng hm fft2
4. Nhn hai bin i Fourier li vi nhau
5. Tnh bin i Fourier ngc ca kt qu trn bng hm ifft2
C = ifft2(fft2(A).*fft2(B));
6. Trch ra thnh phn khc 0 ca kt qu v loi b phn o do sai s lm trn
C = C(1:5,1:5);
C = real(C)
58
C=
59
3. Tnh ton tng quan ca nh mu a vi nh gc bw bng cch quay nh mu 180
v sau dng bin i Fourier nhanh trn c s php nhn chp nh cp trc
y ( Nhn chp s tng ng vi tng quan nu ta quay nhn chp 180 ) . hp
vi nh mu , dng hm fft2 v ifft2 .
C = real(ifft2(fft2(bw) .* fft2(rot90(a,2),256,256)));
nh sau y minh ho kt qu ca tng quan . m sng trong nh tng ng vi s
xut hin ca k t :
figure, imshow(C,[]) % Scale image to appropriate display range.
4. quan st v tr ca mu trong nh , tm
gi tr pixel ln nht sau nh ngha mt
gi tr ngng nh hn gi tr ny . V tr ca nh c ch ra bng mt im trng trong
nh tng quan mu ( xc nh chng d hn , nh ngng c m rng kch
thc im )
max(C(:))
ans =
68.0000
thresh = 60; % Use a threshold that's a little less than max.
60
figure, imshow(C > thresh)% Display showing pixels over threshold.
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
- Cc gi tr Bpq c gi l h s DCT ca A . DCT c th bin i ngc c v bin
i ngc ca n cho bi cng thc :
- 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 s cho mi hm c s .
Vi cc ma trn 8x8 , 64 hm c
s c minh ho bi nh sau :
62
Ma trn bin i DCT
- Toolbox x l nh s dng 2 cch tnh DCT . Cch th nht l dng hm dct2 . Hm
dct2 s dng gii thut da trn FFT tng tc tnh ton vi cc nh c kch thc ln .
Cch th hai l s dng ma trn bin i DCT . Ma trn ny c tr v t hm dctmtx
v c s dng hiu qu hn vi cc nh c kch thc nh nh 8x8 , 16x16 . Ma trn
bin i MxM T c cho bi :
63
Vi ma trn A c kch thc MxM , T*A l mt ma trn MxM m cc ct ca n l DCT
mt chiu ca cc ct trong A . DCT hai chiu ca A c th thu c t biu thc :
B=T*A*T . Do T l ma trn trc giao nn ma trn nghch o ca n cng l ma trn
chuyn v nn DCT hai chiu ca B l T*B*T
DCT v nn nh
- Trong gii thut nn nh JPEG , nh vo c chia lm cc khi c kch thc 8x8 hoc
16x16 v DCT hai chiu c tnh cho mi khi . H s DCT sau c lng t ho ,
m ho v truyn ti . B nhn JPEG ( hoc chng c file JPEG ) s gii m h s
c lng t ca DCT , tnh DCT ngc cho mi khi v sau t cc khi li vi
nhau trong mt nh duy nht . Vi cc nh in hnh , nhiu h s DCT c gi tr gn 0 ,
nhng h s ny c th b b qua m khng nh hng nhiu n cht lng ca nh nn
- V d sau tnh DCT hai chiu ca cc khi 8x8 trong mt nh , b qua ( t bng 0 ) tt
c ngoi tr 10 trong s 64 h s DCT ca mi khi v sau xy dng li nh bng
DCT hai chiu ngc ca mi khi . Phng php ma trn chuyn i DCT c s
dng :
I = imread('cameraman.tif');
I = im2double(I);
T = dctmtx(8);
B = blkproc(I,[8 8],'P1*x*P2',T,T');
mask = [1 1 1 1 0 0 0 0
1 1 1 0 0 0 0 0
1 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
64
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
- Php chiu c th c tnh dc theo bt k gc th-ta no . Nhn chung , bin i
Radon ca hm f(x,y) l tch phn ng ca f song song vi trc y .
68
Xem bin i Radon nh mt nh
- Bin i Radon cho mt s lng ln cc gc thng c hin th nh mt nh . Trong
v d ny , bin i Radon cho nh vung c tnh gia cc gc t 0 n 180 , bc
gc l 1 .
theta = 0:180;
[R,xp] = radon(I,theta);
imagesc(theta,xp,R);
title('R_{\theta} (X\prime)');
xlabel('\theta (degrees)');
ylabel('X\prime');
set(gca,'XTick',0:20:180);
colormap(hot);
colorbar
69
Dng bin i Radon pht hin ng thng
- Bin i Radon c quan h gn gi vi cc thao tc trc quan trn my tnh c bit
n vi bin i Hough . Ta c th s dng hm radon thi hnh mt dng ca bin i
Hough phc v cho vic pht hin cc ng thng . Cc bc nh sau :
1. Tnh cc cnh ca nh nh phn dng hm edge
I = fitsread('solarspectra.fts');
I = mat2gray(I);
BW = edge(I);
imshow(I), figure, imshow(BW)
70
2. Tnh bin i radon ca nh thu c
theta = 0:179;
[R,xp] = radon(BW,theta);
figure, imagesc(theta, xp, R); colormap(hot);
xlabel('\theta (degrees)'); ylabel('x\prime');
title('R_{\theta} (x\prime)'); colorbar
71
3. Tm v tr ca nh trong ma trn bin i Radon . Nhng v tr ny tng ng vi cc
v tr ca ng thng trong nh gc . Trong hnh sau , nh cao nht R tng ng vi
th-ta=1 v x=-80 . ng thng vung gc ti th-ta=1 v c xc nh bi x=-80
nh hnh v di y . Biu din hnh hc ca bin i Radon l ng thng c mi tn
nm ngang . Ch rng cc ng thng song song khc vi ng thng ng trong
hnh cng xut hin ti nh m th-ta=1 trong php bin i . Cng vy , nhng
ng thng vung gc vi chng xut hin nh m th-ta=91
72
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
- Mt hnh hc khc cng hay c s dng l hnh hc fan-beam , trong c mt
ngun v n sensor .
Ci thin kt qu
- Hm iradon s dng gii thut filtered backprojection tnh ton bin i Radon
ngc . Gii thut ny to mt x xp x cho nh I trn c s ca php chiu trong cc
ct ca R . Mt kt qu chnh xc hn c th thu c bng cch s dng nhiu php
chiu khi ti to nh . Khi s lng php chiu tng ( chiu di ca th-ta ) , nh c ti
to IR chnh xc hn . Vct theta phi cha gi tr gc tng u vi mt hng s delta
theta . Khi delta theta c bit , n c th c truyn ti hm iradon thay cho chui gi
tr theta . y l mt v d :
IR = iradon(R,Dtheta);
Gii thut k trn s lc php chiu trong R v sau to li nh s dng php chiu
c lc . Trong mt s trng hp , nhiu c th xut hin trong php chiu . loi b
nhiu tn s cao , t mt ca s ti b lc lm suy gim nhiu . Nhiu b lc ca s
nh vy c th dng c vi hm iradon . V d sau gi hm iradon p t mt ca s
Hamming ti b lc :
74
IR = iradon(R,theta,'Hamming');
iradon cng cho php ta ch ra tn s c chun ho , D - trn , vi b lc c p
ng 0 . D phi c gi tr nm trong khong [0,1] . Vi la chn ny , trc tn s c
nh t l li cho ton b b lc c nn y trong khong tn s [0,D] . iu ny c
th hu ch trong cc trng hp m php chiu bao gm mt cht thng tin v tn s cao
nhng c nhiu tn s cao . Trong trng hp ny , nhiu c th hon ton b loi b m
khng lm nh hng n s khi phc nh . Li gi sau n hm iradon s thit lp tn
s c tiu chun ho bng 0.85
IR=iradon(R,theta,0.85 )
V d : Ti to mt nh t cc d liu php chiu song song
- Nhng lnh di y ch ra cch ti to mt nh t d liu ca cc php chiu song
song . nh kim tra c th c to ra bi hm phantom . nh phantom minh ho nhiu
c tnh c tm thy trong nh y hc v u ngi . Hnh elp sng bao b ngoi ca
nh ging nh mt hp s v cc elp bn trong ging nh cc chi tit bn trong no b .
1. To nh phantom
P = phantom(256);
imshow(P)
75
figure, imagesc(theta3,xp,R3); colormap(hot); colorbar
xlabel('\theta'); ylabel('x\prime');
76
Ch rng mt s c im ca nh ban u xut hin trong nh ny b bin i . Ct
u tin trong bin i Radon tng ng vi php chiu 0 m c ly tch phn
theo chiu thng ng . Ct gn gia nht tng ng vi php chiu 90 c ly
tch phn theo chiu nm ngang . Php chiu 90 c mt profile rng hn so vi php
chiu 0 .
4. To li nh gc t d liu php chiu to trong bc 2 v hin th kt qu .
I1 = iradon(R1,10);
I2 = iradon(R2,5);
I3 = iradon(R3,2);
imshow(I1)
figure, imshow(I2)
figure, imshow(I3)
- Hnh sau biu din kt qu ca 3 nh ti to li . Ch rng nh I1 c to li ch t
18 php chiu th km chnh xc nht . nh I2 vi 36 php chiu kh hn nhng vn
khng trong phn bit cc hnh elp nh . nh I3 , s dng 90 php chiu gn
ging vi nh gc .
77
Ngoi php chiu tia song song , ngi ta cng dng php chiu tia hnh qut bin i
nh ( fan-beam projection ) . s dng php chiu ny , dng hm fanbeam ca
toolbox .
78
i kch thc nh , quay nh v xn nh
Interpolation Qu trnh c s dng c lng gi
tr nh mt v tr gia cc pixel
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 .
79
song khi mt nhiu thi gian hn song tuyn tnh . Tuy nhin , s lng pixel ln hn ,
chnh xc s tt hn .
Kiu nh
80
S dng h s phng i nh
- m rng mt nh , ch ra h s phng i ln hn 1 . thu nh mt nh , ch ra h
s phng i nm gia 0 v 1 . Chng hn , lnh sau tng kch thc ca nh I ln 1.25
ln :
I = imread('circuit.tif');
J = imresize(I,1.25);
imshow(I)
figure, imshow(J)
Ch nh kch thc ca nh ra
81
- 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 .
82
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 .
+ B=imresize(A,m,method) : Tr li mt nh ln gp m ln nh A s dng phng php
ni suy method . method l mt chui ch ra phng php ni suy no c s dng
chng hn : nearest,bilinear,bicubic .
+B=imresize(A, [mrows ncols],method) : Tr li mt nh vi kch thc c ch ra bi
vc t [mrows ncols ] . Nu kch thc c ch ra khng cng t l vi nh vo , nh s
b bin dng
Khi kch thc ca nh ra nh hn kch thc ca nh vo v phng php ni suy c
s dng l bilinear hoc bicubic , hm imresize p t mt b lc thng thp trc khi
tuyn tnh ho gim hin tng rng ca . Kch thc mc nh l 11x11 .
Ta c th ch ra mt th t khc cho b lc mc nh s dng cu trc :
B=imresize(,method,n) : n l mt s nguyn ch ra kch thc ca b lc nxn . Nu
n=0 , hm imresize b qua bc lc . Ta cng c th ch ra b lc ring s dng c php :
B=imresize(,method,h) : Trong h l mt b lc FIR hai chiu ( c th c tr v
bi cc hm ftrans2, fwind1 , fwind2 hoc fsamp2 ) .
4. Quay nh
- quay mt nh , s dng hm imrotate . Hm ny chp nhn hai tham s chnh :
+ nh cn quay
+ Gc quay
-Gc quay tnh theo . Nu ta ch ra mt gi tr dng , hm imrotate quay nh theo
chiu ngc chiu kim ng h . Nu ch ra gi tr m , hm quay nh theo chiu kim
ng h . V d sau quay mt nh 35 theo chiu ngc chiu kim ng h :
J=imrotate(I,35 ) ;
- Mt s tham s tu chn ta c th truyn vo cho hm bao gm :
+ Phng php ni suy c s dng
+ Kch thc ca nh ra
83
Ch nh phng php ni suy c s dng
- Theo mc nh , hm imrotate s dng phng php ni suy th nht ( nearest-neighbor
interpolation ) tnh gi tr cc pixel trong nh ra . Tuy nhin ,ta c th ch ra cc
phng php ni suy khc nh : bilinear ,bicubic
V d sau quay mt nh 35 ngc chiu kim ng h s dng ni suy song tuyn
tnh :
I = imread('circuit.tif');
J = imrotate(I,35,'bilinear');
imshow(I)
figure, imshow(J)
Ch nh kch thc ca nh ra
84
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)
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)
85
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);
86
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 .
87
- 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 khng
gian cho nh vo , t trc cc tham s khc vi 2 vc t hai phn t ch ra Xdata v
Ydata . Chng hn :
[]=imcrop(x,y,)
- Nu ta cung cp cc tham s ra ph , hm imcrop s tr li thng tin v vng ch nht
c chn v h to ca nh vo . Chng hn :
[A,rect] = imcrop(...)
[x,y,A,rect] = imcrop(...)
A l nh ra , x v y l Xdata v Ydata ca nh vo
Ch :
- Do rect l mt tp hp cc to khng gian , cc phn t width v height trong rect
khng lun lun tng ng chnh xc vi kch thc ca nh ra . Chng hn , gi s rect
l [20 20 40 30 ] , s dng h to khng gian theo mc nh . Gc trn tri ca vng
ch nht c chn l tm ca pixel (20,20) v gc di phi ca vng ch nht l tm
ca pixel (50,60) . nh ra l mt nh c kch thc 31x41 ch khng phi 30x40 . iu
ny l do nh ra bao gm tt c cc pixel trong nh vo hon ton hoc mt phn c
bao bc bi vng ch nht trn .
V d
I = imread('circuit.tif');
I2 = imcrop(I,[75 68 130 112]);
imview(I), imview(I2)
88
6. Cc bin i nh thng dng
- thc hin cc bin i khng gian nh 2 chiu , s dng hm imtransform . Hm ny
chp nhn hai tham s chnh :
+ nh cn bin i
+ Mt cu trc bin i c gi l TFORM ch ra kiu bin i ta mun thc hin
Ch ra kiu bin i
- Ta ch ra kiu bin i trong cu trc TFORM . C hai cch to mt cu trc
TFORM :
+ S dng hm maketform
+ S dng hm cp2tform
S dng hm maketform
- Khi s dng hm ny , ta ch ra kiu bin i ta mun thc hin . Cc kiu bin i m
maketform tr gip bao gm :
89
+ affine : Bin i c th bao gm : translation ( dch ) , rotation ( quay ) , scaling ,
stretching v shearing . Cc ng thng vn l ng thng , ng song song vn song
song nhng hnh ch nht c th b bin i
+box : Mt trng hp c bit ca affine khi mi chiu c di v nh t l c lp
+ composite : Bao gm t hp ca hai hay nhiu php bin i
+ custom : Bin i do ngi dng t nh ngha , n cung cp cc hm thun hoc
nghch c gi bi hm imtransform
+ projective : Bin i trong cc ng thng vn gi nguyn nhng cc ng
song song ng quy li thnh mt im .
S dng cp2tform
- Ta s dng hm ny to ra cu trc TFORM khi ta mun thi hnh mt bin i cn
kht vi cc im d liu nh mt bin i a thc .
Ch : Khi s dng vi hm imtransform , cu trc TFORM phi nh ngha mt bin
i 2 chiu . Nu mt nh cha nhiu hn mt chiu chng hn nh nh RGB , cng mt
bin i 2 chiu s c p t ti tt c cc mt phng 2 chiu theo chiu cao hn .
nh ngha mt bin i n chiu s dng hm imformarrray
Thc hin bin i
- Khi ta nh ngha mt cu trc TFORM , ta c th thi hnh mt s bin i bng
cch gi hm imtransform . Chng hn , on m sau s dng hm ny thi hnh mt
bin i projective cho mt nh bn c :
I = checkerboard(20,1,1);
figure; imshow(I)
T = maketform('projective',[1 1; 41 1; 41 41; 1 41],...
[5 5; 40 5; 35 30; -10 30]);
R = makeresampler('cubic','circular');
K = imtransform(I,T,R,'Size',[100 100],'XYScale',1);
figure, imshow(K)
90
- Cc tu chn ca hm imtransform cho php ta iu khin nhiu kha cnh ca vic
bin i . Chng hn , ch rng nh b bin i xut hin nhiu bn copy ca nh gc .
iu ny nhn c bi tu chon size .Xem thm Help Online
Hm imtransform
- p t mt bin i khng gian 2 chiu ln mt nh
C php
B = imtransform(A,TFORM)
B = imtransform(A,TFORM,INTERP)
[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 .
91
Tham s Din gii
UData C hai tham s ny l cc vct hai phn t
VData thc . Udata v Vdata ch ra v tr khng
gian ca nh A trong khng gian vo 2
chiu U-V . Hai phn t ca Udata cho
to u (honh ) ca ct u tin v
cui cng ca A . Hai phn t ca Vdata
cho to v ( tung ) ca hng u tin
v cui cng ca A .
Gi tr mc nh cho Udata v Vdata
tng ng l [1 size(A,2) ] v [1 size(A,1) ]
Xdata C hai tham s ny l cc vct hai phn t
Ydata thc ch ra v tr khng gian ca nh ra B
trong khng gian ra 2 chiu X-Y . Hai phn
t ca Xdata ch ra honh x ca ct
u tin v cui cng ca B . Hai phn t
ca Ydata ch ra tung ca hng u
tin v cui cng ca B .
Nu Xdata v Ydata khng c ch ra ,
hm imtransform c lng gi tr cho
chng c th cha ton b nh ra b
bin i
XYScale L vct vi mt hoc hai phn t thc .
Phn t u tin ca XYScale ch ra chiu
rng ca mi pixel vo trong khng gian
X-Y . Phn t th hai ( nu tn ti ) ch ra
chiu cao ca mi pixel ra . Nu XYScale
ch c mt phn t , gi tr ny s c
dng cho c chiu rng v chiu cao .
Nu XYScale khng c ch nh nhng
Size c ch ra th XYScale c tnh
ton t Size ,Xdata v Ydata .
92
Size Mt vct hai phn t nguyn khng m .
Size ch ra s hng v ct trong nh ra B .
Vi chiu cao hn , kch c ca B c ly
trc tip t A . Ni cch khc , size(B,k)
tng ng vi size(A,k) vi k>2. Nu
Size khng c ch nh , n s c
tnh t Xdata ,Ydata v XYScale
FillValues Mt mng cha mt hoc nhiu gi tr t
( fill values ) . Fill values c s dng cho
cc pixel trn nh ra khi v tr c bin i
tng ng trn nh vo hon ton l vin
ngoi ca nh ra . nu A l 2 chiu ,
Fillvalues phi v hng . Tuy nhin , nu
chiu ca A ln hn 2 , FillValues c th
l mt mng m kch thc ca n tho
mn rng buc sau : size(fill_values,k) phi
bng size(A,k+2) hoc 1 .
Chng hn , nu A l mt nh RGB unit8
c kch thc 200x200x3 th cc kh nng
ca FillValues bao gm :
+ 0 : T vi mu en
+[0;0;0] : T vi mu en
+255 : T vi mu trng
+ [255;255;255] : T vi mu trng
+[0;0;255] : T vi mu xanh
+[255;255;0] : T vi mu vng
Nu A l 4 chiu 200x200x3x10 th
FillValues c th l 1 v hng
1x10,3x1,3x10
V d
93
+ 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)
+ 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
1. Bng thut ng
94
Contour ng trong mt nh dc theo gi tr
cng ca cc pixel nh bng hng s
Edge (Cnh ) ng cong m theo bin
i cng cc pixel nh rt nhanh .
Edge thng c kt hp vi vng bin
ca mt i tng trong mt cnh . S pht
hin cc edge c s dng phn bit
cc edge trong mt nh
Property S o c nh lng ca mt nh hoc
mt vng nh .
Histogram th c s dng trong phn tch nh
ch ra s phn b ca cng ca mt
nh . Ta c th s dng thng tin ny trong
mt histogram la chn mt thao tc
lm giu nh thch hp . Chng hn , nu
th histogram ca mt nh ch ra rng
vng cc gi tr cng nh , ta c th s
dng mt hm iu chnh cng m
rng cc gi tr qua mt vng rng .
Noise Cc sai s trong qu trnh thu thp nh dn
n vic cc gi tr pixel khng phn nh
ng cng ca cnh thc
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 K thut phn tch nh bng cch chia nh
ra nhiu khi ging nhau
2. Cc gi tr pixel v thng k
95
- 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)
+ o c tnh cht ca mt vng nh ( hm regionprops)
a La chn cc pixel
- Ta c hai hm c th cung cp thng tin v d liu mu ca cc pixel nh c chn la
:
+ Hm pixval : Hin th tng tc gi tr d liu ca cc pixel khi ta di chuyn con tr
chut trn nh . Hm ny c th hin th khong cch -clt gia hai pixel ( Euclidean
Distance )
+ Hm impixel tr li gi tr d liu ca mt hoc mt tp cc pixel c la chn . Ta c
th cung cp to ca pixel nh l tham s vo hoc c th la chn pixel s dng
chut .
Ch : Vi nh ch s , hm pixval v impixel ch ra gi tr RGB c lu trong bn
mu , khng phi gi tr ch s :
- s dng hm pixval , u tin ta hin th mt nh v sau nhp lnh pixval. Pixval
s t mt thanh mu en cui ca khung hnh , thanh ny s hin th to (x,y ) ca
pixel khi con tr chut i qua n v d liu mu cho pixel .
- Nu ta click chut vo nh v d chut trong khi ta di chuyn chut , hm pixal cng
hin th khong cch gia im ta click v v tr hin ti ca con tr chut . Hm pixval
v mt ng thng gia cc im ch ra khong cch c o . Khi ta nh chut ,
ng thng v khong cch bin mt .
- Hm pixval mang li cho ta thng tin nhiu hn hm impixel tuy nhin , hm impixel c
u im l tr li thng tin trong mt bin v n c th c gi theo cch tng tc hoc
khng tng tc . Nu ta gi hm impixel m khng c tham s , con tr thay i hnh
dng khi n di chuyn trn nh . Ta c th click cc pixel quan tm , hm impixel s hin
th mt ngi sao nh qua mi pixel ta chn . Khi ta chn xong pixel , nhn nt
Enter , hm impixel tr li gi tr mu ca pixel chn v ngi sao bin mt .
96
- V d sau minh ho cch s dng hm impixel :
1. Hin th mt nh :
imshow canoe.tif
2. Gi hm impixel la chn im
vals=impixel
Sau click cc im ca nh la chn cc pixel . Khi ta kt thc vic la chn , nhn
phm Enter
97
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 .
- Vi mt ng thng n , hm improfile v th cc gi tr cng trong mt
khung nhn 2 chiu . Vi mt ng gp khc , hm s v mt th cc gi tr cng
trong mt khung nhn 3 chiu
- Nu ta gi hm improfile khng c tham s , con tr chut s thay i hnh dng khi n
di chuyn trn nh . Ta c th ch ra ng thng bng cch click chut . Hm improfile
s v mt ng thng gia hai pixel gn nhau . Khi ta kt thc la chn , nhn phm
Enter . Hm improfile hin th th trong mt khung hnh mi
- Trong v d ny , ta gi hm improfile v ch ra mt ng thng n vi chut . Trong
hnh ny , ng thng hin th mu v c v t trn xung di :
I = fitsread('solarspectra.fts');
imshow(I,[]);
improfile
98
- V d di y ch ra hm improfile hm vic ra sao vi mt nh RGB . S dng hm
imshow hin th nh trong mt ca s khung nhn . Gi hm improfile khng c tham
s v vt ca mt ng thng theo cch tng tc . Trong hnh , ng mu en ch ra
on ng thng c v t trn xung di .
imshow peppers.png
improfile
99
- Hm improfile hin th mt th ca cc gi tr cng dc theo on ng thng .
th bao gm cc ng thng ring bit cho cc gi tr cng R,G,B .
100
c- ng vin nh ( Image Contour )
- Ta c th s dng hm imcontour hin th mt th ng vin ca cc d liu
trong mt nh cng . Hm ny tng t nh hm contour trong Matlab nhng n t
ng thit lp trc v vy , chiu v t l khp vi nh .
- V d ny hin th mt nh cng (nh en trng ) ca cc ht go v mt th
ng vin ca d liu nh :
1. c mt nh cng v hin th n :
I = imread('rice.png');
imshow(I)
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
figure , imhist (I)
102
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
103
a Pht hin cnh ( Edge Detection )
- Ta s dng hm edge pht hin cc cnh trong mt nh m tng ng vi vng bin
ca cc i tng . tm cnh , hm ny tm cc v tr trong nh c gi tr cng
thay i rt nhanh s dng mt trong nhng tiu chun sau :
+ Cc v tr m tch phn u ca cng ln hn bin ca mt s ngng no
Cc v tr m tch phn th hai ca cng giao vi 0
Hm edge cung cp mt s b c lng tch phn , mi ci ng dng mt trong cc nh
ngha trn . Vi mt s b c lng ny , ta c th ch ra cc thao tc c nhy vi cnh
nm nganh , nm dc hoc c hai hay khng . Hm tr v mt nh nh phn cha gi tr 1
ti ni cnh c tm thy v 0 cc ch khc .
- Phng php pht hin cnh mnh nht m hm edge cung cp laf phng php
Canny . Phng php ny khc vi cc phng php khc ch n s dng hai gi tr
ngng khc nhau ( pht hin cnh mnh hay yu ) v bao gm cc cnh yu nh ra
ch nu chng c kt ni vi cc cnh kho ( strong edges ) .
- V d sau minh ho sc mnh ca phng php Canny bng cch ch ra kt qu ca vic
p vo php pht hin cnh Sobel v Canny ln cng mt nh :
1. c nh v hin th n
I = imread('coins.png');
imshow(I)
104
BW1 = edge(I,'sobel');
BW2 = edge(I,'canny');
imshow(BW1)
figure, imshow(BW2)
105
mt nh nh phn sau s dng hm bwboundaries tm vt ca ng bao ca tt c
cc i tng trong nh :
1. c vo mt nh v hin th n
I = imread('coins.png');
imshow(I)
3. Tnh cc to hng v ct ca
mt pixel trn bin ca i tng ta
mun tm vt . bwboundary s
dng im ny nh l im bt u ca vic tm vt .
dim = size(BW)
106
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);
107
ring bit . chc chn rng hm bwboundaries ch tm vt vi nhng ng tin , s
dng hm imfill t vng trong mi ng tin
BW_filled = imfill(BW,'holes');
boundaries = bwboundaries(BW_filled);
108
- Chng hn , nu mt i tng cha mt l v ta chn mt pixel trn mt phn mng
ca i tng lm im xut pht , ta c th tm vt bin ngoi ca i tng hoc bin
trong ca l ph thuc vo hng ta chn cho bc u tin . Vi cc vt c t ,
hng m ta chn cho bc u tin khng quan trng
- minh ho , hnh sau y ch ra cc pixel c tm vt khi pixel xut pht trn mt
phn mng ca vt v bc u tin ( first step ) c thit lp l north hoc south .
109
c- K thut chia 4 ( Quadtree Decomposition Technique )
- y l mt k thut phn tch bao gm vic chia nh mt nh ra thnh cc khi ng
u hn nh . K thut ny th hin nhng thng tin v cu trc ca nh . N cng hu
dng nh l bc u tin trong gii thut nn thch nghi ( adaptive compression )
- Ta c th thc hin k thut ny bng cch s dng hm qtdecomp . Hm ny lm vic
bng cch chia mt nh vung thnh 4 khi vung c cng kch c v sau kim tra
mi khi xem nu n hp vi mt s tiu chun ng u ( chng hn nu tt c cc
pixel trong khi l trong mot khong ring bit ) . Nu mt khi hp tiu chun , n s
khng c chia thm na . Nu khng , n s c chia tip thnh 4 khi con v qu
trnh kim tra tiu chun li c p dng ln cc khi ny . Qu trnh ny c lp li
cho n khi mi khi hp tiu chunn . Kt qu c th cha cc khi vi kch thc khc
nhau
V d : Thc hin k thut Quadtree Decomposition
- minh ho , v d ny thc hin k thut chia 4 trn mt nh cng c kch c :
512x512 .
1. c vo mt nh cng
I = imread('liftingbody.png');
2.Ch ra tiu chun kim tra c s dng quyt nh tnh ng nht ca mi khi
trong php phn tch . Chng hn , tiu chun c th l s tnh ton ngng sau y :
max(block(: ))-min(block(:))<=2
Ta cng c th cung cp cho hm qtdecomp mt hm ( hn l s dng gi tr ngng )
quyt nh c chia nh cc khi hay khng , chng hn ta da trn quyt nh v s
thay i ca khi . bit thm , xem c php ca hm qtdecomp
3. Thc hin k thut chia 4 bng cch gi hm qtdecomp , ch ra nh v ga tr ngng
nh nhng tham s
S = qtdecomp(I,0.27)
110
Ta ch ra ngng l gi tr gia 0 v 1 bt k I thuc lp no . Nu I thuc lp uint8 , hm
qtdecomp nhn ngng vi gi tr 256 tnh gi tr ngng c s dng . Nu I thuc
lp uint16 , hm nhn ngng vi gi tr 65535
Hm qtdecomp u tin chia nh thnh 4 khi 256x256 v p t mt s kim tra tiu
chn ln mi khi . Nu mt khi khng tiu chun , hm chia tip n v p t s
kim tra tiu chun ln cc khi con ny . qtdecomp tip tc thc hin vic chia cc khi
cho n khi tt c cc khi hi tiu chun . Cc khi c th nh 1x1 thm ch nh hn
- Hm qtdecomp tr v S nh l mt ma trn tha c cng kch thc vi I . Cc phn t
khc 0 ca S i din cho gc trn tri ca cc khi , gi tr ca mi phn t khc khng
ch ra kch thc mi khi .
- Hnh sau y ch ra nh gc v nh sau khi p dng k thut chia 4 . Mi hnh vung
en i din cho mt khi ng nht v cc ng trng i din cho vng bao gia cc
khi .
111
figure, imhist(I,64)
112
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)
113
Thit lp ngng iu chnh t ng
- s dng hm imadjust , ta phi thc hin hai bc in hnh :
1. Quan st biu ca nh quyt nh gi tr cng gii hn
2. Ch ra nhng ngng ny di dng mt phn s trong khong 0 n 1 ta c th
truyn chng vo hm imadjust trong vc t [low_in high_in]
- Mt cch thun tin hn ch ra cc gi tr ngng l s dng hm stretchlim . Hm
ny tnh ton biu ca nh v tnh cc gi tr ngng iu chnh mt cch t ng .
Hm tr v cc gi tr di dng phn s trong mt vct m ta c th truyn theo dng
[low_in high_in] nh l tham s ti hm imadjust . Chng hn :
I = imread('rice.png');
J = imadjust(I,stretchlim(I),[0 1]);
- Theo mc nh , hm stretchlim s dng cc gi tr cng i din cho y 1%(0.01)
v nh 1%(0.99) ca khong nh l cc ngng gii hn iu chnh . Ta c th ch ra cc
khong gii hn khc nh l tham s cho hm stretchlim .
Tng quan Gamma
114
- Hm imadjust nh x low thnh bottom , high thnh top . Theo mc nh , nhng gi tr
gia low v high c nh x mt cch tuyn tnh ti cc gi tr gia bottom v top .
Chng hn , gi tr gia low v high tng ng vi gi tr gia bottom v top
- Hm imadjust c th chp nhn mt tham s ph ch ra tc nhn tng quan Gamma .
Ph thuc vo gi tr ca Gamma , s nh x gia cc gi tr trong nh vo v ra c th l
khng tuyn tnh . Chng hn , gi tr gia low v high c th nh x ti mt gi tr ln
hn hoc nh hn gi tr gia bottom v top . Hnh sau minh ho mi quan h ny . Ba
ng cong chuyn i ch ra cc gi tr c nh x ra sao khi Gamma nh hn , bng
v ln hn 1 .
115
b- S lm cn bng biu ( Histogram Equalization )
- Qu trnh iu chnh cc gi tr cng c th c thc hin t ng bng hm
histeq . Hm histeq thc hin mt s cn bng biu bao gm vic bin i cc gi tr
cng biu ca nh ra c th xp x tng hp vi mt biu xc nh . ( theo
mc nh , hm ny c gng lm hp ti mt biu phng vi 64 thng bins , nhng
ta c th ch ra mt biu khc )
- V d sau y minh ho vic s dng hm histeq iu chnh cng ca mt nh .
nh gc c tng phn thp vi hu ht cc gi tr gia ca khong cng . Hm
histeq to ra mt nh ra c cc gi tr c phn b u trong nh
I = imread('pout.tif');
J = histeq(I);
imshow(J)
figure, imhist(J,64)
116
- ng cong ny phn nh biu trong hnh trc vi cc gi tr vo nm gia
0.3 v 0.6 trong khi gi tr ra c phn b gia 0 v 1 .
c- Cn bng biu thch ng , tng phn gii hn ( Contrast Limited
Adaptive Histogram Equalization )
- Tng t nh s dng hm histeq , ta c th thc hin s cn bng biu thch ng
tng phn gii hn s dng hm adapthisteq . Trong khi hm histeq l vic trn ton bc
nh , hm adapthisteq hot ng trn mt vng nh ca nh c gi l ngii ( tiles ) .
tng phn ca mi tile c lm giu cho biu ca vng ra xp x tng hp
vi mt biu xc nh . Sau khi thi hnh php cn bng , adapthisteq kt hp cc tile
117
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)
118
d- Gin khng tng quan ( Decorrelation Stretching )
- Ta p dng gin khng tng quan bng cch s dng hm decorrstretch . S lng gii
mu , NBANDS trong mt nh thng l 3 . Tuy nhin , ta c th p t gin khng
tng quan bt k s gii mu no ta mun .
- Cc gi tr mu gc ca nh c nh x ti mt tp cc gi tr mi vi mt khong
rng hn . Cng mu ca mi pixel c bin i thnh mu eigenspace ca ma trn
tng quan , c gin ngang bng vi s bin i gii mu ( band variances ) sau
c bin i li thnh gii mu gc .
- nh ngha mt bandwise statistics , ta s dng ton b nh gc hoc vi tu chn
subset , bt k mt vng no ca nh .
Gin khng tng quan n gin
- Trong v d ny , ta thc hin mt php gin khng tng quan trn mt nh
1. nh c 7 gii , nhng ta ch c vo 3 mu nhn thy
A = multibandread('littlecoriver.lan', [512, 512, 7], ...
'uint8=>uint8', 128, 'bil', 'ieee-le', ...
{'Band','Direct',[3 2 1]});
2. Thc hin gin khng tng quan
B = decorrstretch(A);
3. Hin th kt qu
imshow(A); figure; imshow(B)
- So snh hai nh , nh gc c mu tm nh trong khi nh b bin i c mt cht g
nh c m rng khong mu
119
- Mt th biu din s phn b gii ca nh s ch ra cc gii c lm mt tng quan
v cn bng nh th no :
rA = A(:,:,1); gA = A(:,:,2); bA = A(:,:,3);
figure, plot3(rA(:),gA(:),bA(:),'.'); grid('on')
xlabel('Red (Band 3)'); ylabel('Green (Band 2)'); ...
zlabel('Blue (Band 1)')
rB = B(:,:,1); gB = B(:,:,2); bB = B(:,:,3);
figure, plot3(rB(:),gB(:),bB(:),'.'); grid('on')
xlabel('Red (Band 3)'); ylabel('Green (Band 2)'); ...
zlabel('Blue (Band 1)')
120
Gin tng phn tuyn tnh
- By gi ta s thc hin mt bin i tng t nhng vi mt php gin tng phn
tuyn tnh p t ln nh sau khi gin khng tng quan .
imshow(A); C = decorrstretch(A,'Tol',0.01); figure; imshow(C)
- Hy so snh c bin i vi nh gc
121
- 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
pixel c thit lp ti gi tr trung bnh ca cc pixel xung quanh n , do vy s bin
ng a phng gy ra bi cc ht nhiu b gim bt .
122
b- S dng cc b lc median
-S dung cc b lc trung bnh tng t nh vic s dng cc b lc trung bnh
( averaging filters ) , mi pixel ra c thit lp gi tr trung bnh ca cc gi tr pixel ln
cn ca pixel vo tng ng . Tuy nhin , vi b lc ny , gi tr ca mt pixel ra c
quyt nh bi median ca cc pixel ln cn hn l gi tr trung bnh . Median thng nh
hn nhiu so vi trung bnh cc gi tr xa nht (c gi l outliers ) . B lc median do
tt hn loi b nhng outlier ny m khng gim sc nt ca nh . Hm
medfilt2 s dng php lc median
- V d sau y so snh vic s dng mt b lc trung bnh v mt b lc median loi
b nhiu l cc ht mui v ht tiu . Loi nhiu ny bao gm mt tp hp cc pixel
ngu nhin c thit lp thnh mu en hoc trng . Trong c hai trng hp , kch c
ca vng xung quanh c s dng lc l 3x3 .
1. c nh v hin th n
I = imread('eight.tif');
imshow(I)
2. Thm nhiu vo nh
J = imnoise(I,'salt &
pepper',0.02);
figure, imshow(J)
123
3. Lc nhiu vi b lc trung bnh sau hin th kt qu
K = filter2(fspecial('average',3),J)/255;
figure, imshow(K)
124
c- S dng cc b lc thch nghi
- Hm wiener2 p t mt b lc Wiener ( mt kiu ca b lc tuyn tnh ) ln mt nh
mt cch thch nhi ( adaptively ) vi s bin ng a phng ca nh . Nhng ni c
bin ng ln , hm ny thc hin mt s t thao tc lm mt nh . Nhng ni c bin
ng nh , hm thc hin nhiu cc thao tc lm mt nh .
- C ch ny thng to ra kt qu tt hn so vi lc tuyn tnh . Cc b lc thch nghi
thng c s dng nhiu hn so vi cc b lc tuyn tnh trong vic bo v cc cnh
v vng c tn s cao ca mt nh . Thm vo , khng c tc v thit k no , hm
wiener2 iu khin tt c cc tnh ton ban u v thi hnh php lc cho nh vo . Tuy
nhin , hm ny cn nhiu tnh ton hn cc b lc tuyn tnh
- Hm wiener2 lm vic tt hn khi nhiu l nhiu trng chng hnh nh nhiu Gauss .
V d di y p t hm wiener1 ln mt nh c nhiu Gauss tc ng .
RGB = imread('saturn.png');
I = rgb2gray(RGB);
J = imnoise(I,'gaussian',0,0.005);
K = wiener2(J,[5 5]);
imshow(J)
figure, imshow(K)
125
nh gc
nh kt qu
- Morphology l mt k thut x l nh da
trn cc hnh dng . Gi tr ca mi pixel trong nh ra da trn c s mt s so snh ca
cc pixel tng ng trong nh vo vi cc pixel xung quanh n . Bng cch la chn kch
c v hnh dng ca vng xung quanh , ta c th xy dng mt thao tc hnh thi rt nhy
cm vi mt s hnh dng c th trong nh vo .
- Ta s xem xt cc hm x l hnh thi ca toolbox. Ta c th s dng nhng hm ny
thc hin cc thao tc x l thng dng nh lm giu tng phn ( contrast
enhancement ) , loi b nhiu ( nose removal ) , lm mng ( thinning ) , t ( filling ) v
phn vng ( segmentation ) .
1. Bng thut ng
Tn thut ng Din giI
Background Nn . Trong nh nh phn , cc pixel c
thit lp gi tr 0 c xem xt nh l nn
ca nh . Khi ta nhn mt nh nh phn ,
mu ca nn l mu en
Connectivity Cc tiu chun m t vic cc pixel trong
mt nh hnh thnh nn mt nhm gn kt
nh th no . Toolbox cung tr gip
connectivity 2 chiu cng nh nhiu chiu
Foreground Trong mt nh nh phn , cc pixel c
thit lp gi tr 1 c xem nh
foreground . Khi quan st mt nh nh phn
, mu ca foreground l mu trng
Global maxima Vng cao nht trong nh .
Global minima Vng thp nht trong nh`
126
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 Vng xung quanh l tp cc pixel
c nh ngha bi v tr tng i ca
chng vi pixel quan tm . Mt vng xung
quanh c th c nh ngha bi mt phn
t c cu trc hoc bng cch ch ra mt
connectivity ( tnh kt ni )
Object Tp cc pixel trong mt nh nh phn hnh
thnh nn mt nhm kt ni . Trong ng
cnh ca xem xt ny , object v
connected component l ng nht .
Packed binary Phng php nn nh nh phn m c th
lm tng tc qu trnh x l nh
Regional maxima Tp cc pixel kt ni c cng cng ln
nht trong mt vng . Tt c cc pixel xung
quanh u c gi tr nh hn gi tr ny
Regional minima Tp cc pixel kt ni c cng cng nh
nht
Structuring element Ma trn c s dng nh ngha mt
hnh dng xung quanh v kch c cho tc
thao tc hnh thi bao gm gin n v xi
mn . N ch cha cc gi tr 0 v 1 v c
th c mt hnh dng v kch c bt k .
Cc pixel vi gi tr 1 nh ngha vng
xung quanh
127
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
128
- Hnh sau y minh ho s gin n ca mt nh nh phn . Ch cch phn t cu trc
nh ngha vng xung quanh ca pixel quan tm , l vng hnh trn . Hm gin n p
t quy lut tng ng ln cc pixel trong vng ln cn v gn mt gi tr ti pixel tng
ng trong nh ra . Trong hnh , hm gin n hnh thi thit lp cc gi tr ca pixel ra
bng 1 bi v mt trong nhng phn t trong vng ln cn c nh ngha bi phn t
cu trc c gi tr 1
129
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 Cc pixel ngoi bin nh c gn gi tr
nh nht tu theo kiu d liu . Vi nh nh
phn , nhng pixel ny c gn gi tr 0 .
Vi nh en trng , gi tr nh nht cho nh
uint8 l 0
Erosion Cc pixel ngoi bin nh c gn gi tr
ln nht tu theo kiu d liu . Vi nh nh
phn , nhng pixel ny c gn gi tr 1 .
Vi nh en trng , ga tr ln nht ca nh
uint8 l 255
Ch : Bng cch s dng gi tr nh nht cho thao tc gin n v gi tr ln nht cho
thao tc xi mn , cc hm toolbox trnh vic tc ng ln bin . Cc vng gn bin ca
nh ra khng ng nht vi phn cn li ca nh . Chng hn , nu xi mn c thm
130
vi gi tr nh nht , vic xi mn mt nh s dn n ng bin en xung quanh cnh
ca nh ra .
b-Phn t cu trc
- Mt phn khng th thiu c ca cc thao tc gin n v xi mn l phn t cu trc
c s dng thm d nh vo . Phn t cu trc 2 chiu hoc phng bao gm mt ma
trn ca 0 v 1 thng nh hn ma trn nh ang c x l . Pixel trung tm ca phn
t cu trc c gi l gc phn bit vi cc pixel quan tm pixel ang c x l .
Nhng pixel trong phn t cu trc cha gi tr 1 nh ngha vng ln cn ca phn t
cu trc . Nhng pixel ny cng c xem xt trong qu trnh gin n hoc xi mn .
Phn t 3 chiu hay khng phng s dng 0 v 1 nh ngha quy m ca phn t cu
trc trong mt phng x-y v thm vo gi tr chiu cao nh ngha chiu th 3 .
Gc ca phn t cu trc
- Cc hm xl hnh thi s dng m sau y ly to ca gc phn t cu trc c
kch thc v chiu bt k
origin = floor((size(nhood)+1)/2)
( Trong m trn , nhood l vng ln cn nh ngha phn t cu trc . Do phn t cu trc
l i tng trong Matlab , ta khng th s dng kch thc ca i tng STREL trong
tnh ton ny . Ta phi s dng phng thc getnhood ca STREL nhn vng ln cn
ca phn t cu trc t i tng STREL )
- Chng hn , v d sau minh ho mt phn t cu trc c hnh thoi
To phn t cu trc
131
- Cc hm gin n v xi mn ca toolbox chp nhn cc i tng phn t cu trc
c gi l STRELs . Ta s dng hm strel to ra cc STRELs c kch thc v hnh
dng bt k . Hm strel cng bao gm tr gip sn cho cc hnh dng thng dng khc
nh : ng thng , hnh thoi , hnh a , ng thng iu ho v hnh qu bng
- Chng hn , on m sau to mt phn t cu trc phng c dng hnh thoi
se = strel('diamond',3)
se =
Neighborhood:
0 0 0 1 0 0 0
0 0 1 1 1 0 0
0 1 1 1 1 1 0
1 1 1 1 1 1 1
0 1 1 1 1 1 0
0 0 1 1 1 0 0
0 0 0 1 0 0 0
132
cu trc to nn s phn tch . Chng hn , y l phn t cu trc c to ra trong php
phn tch mt phn t cu trc hnh thoi .
sel = strel('diamond',4)
sel =
Flat STREL object containing 41 neighbors.
Decomposition: 3 STREL objects containing a total of 13 neighbors
Neighborhood:
0 0 0 0 1 0 0 0 0
0 0 0 1 1 1 0 0 0
0 0 1 1 1 1 1 0 0
0 1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1 0
0 0 1 1 1 1 1 0 0
0 0 0 1 1 1 0 0 0
0 0 0 0 1 0 0 0 0
seq = getsequence(sel)
seq =
3x1 array of STREL objects
seq(1)
ans =
Flat STREL object containing 5 neighbors.
Neighborhood:
0 1 0
1 1 1
0 1 0
seq(2)
133
ans =
Flat STREL object containing 4 neighbors.
Neighborhood:
0 1 0
1 0 1
0 1 0
seq(3)
ans =
Flat STREL object containing 4 neighbors.
Neighborhood:
0 0 1 0 0
0 0 0 0 0
1 0 0 0 1
0 0 0 0 0
0 0 1 0 0
134
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 1 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
- m rng tt c cc mt ca thnh phn foreground , v d ny s dng mt phn t
cu trc c kch thc 3x3 .
SE = strel('square',3)
SE =
Neighborhood:
1 1 1
1 1 1
1 1 1
- gin n nh , truyn nh BW v phn t cu trc SE ti hm imdilate .
BW2 = imdilate(BW,SE)
135
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=
Neighborhood:
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
3. Gi lm imerode , truyn nh BW v phn t cu trc SE lm tham s cho hm
BW2 = imerode(BW1,SE);
ng cho trn mt phi ca nh ra . Chng l do hnh dng ca phn t cu trc
quyt nh
imshow(BW1)
figure, imshow(BW2)
136
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');
137
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
138
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);
139
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)
140
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 ( mask ) .
im cao nht hay nh trong nh ghi ch ra v tr bt u qu trnh x l . Qu trnh x l
s tip tc cho n khi gi tr nh n nh .
141
- minh ho ti to hnh thi , xem xt v d sau y . N cha hai vng chnh , cc
khi pixel bao gm cc gi tr 14 v 18 . Nn ch yu c thit lp gi tr bng 10 vi
mt s pixel c thit lp gi tr 11 .
142
8 9 8 8 8 16 16 16 8 8
8 8 8 9 8 16 16 16 8 8
8 8 9 8 8 16 16 16 8 8
8 9 8 9 8 8 8 8 8 8
8 8 8 8 8 8 9 8 8 8
2. Gi hm imreconstruct ti to hnh thi nh . Trong nh ra , ch rng tt c nhng
s dao ng v cng ngoi tr gi tr nh b loi b
recon = imreconstruct(marker, mask)
Ti to hnh thi nh l g ?
143
- Hnh sau y minh ho qu trnh x l ny trong 1 chiu . Mi x gin n lin tip c
rng buc nm di mt n . Khi cc gin n tip sau khng thay i nh , qu
trnh x l chm dt . Gin n cui cng l nh c ti to .
144
0 1 1 1 1 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
nh ngha tnh kt ni trong mt nh
-Sau y ta s lit k tt cc tnh kt ni 2 v 3 chiu chun c tr gip bi toolbox .
Cc kt ni hai chiu
+ 4 kt ni ( 4 connected ) : Cc pixel c kt ni vi cc pixel cc cnh ca n . iu
ny c ngha rng mt gp pixel lin nhau l mt phn ca cng mt i tng ch nu
chng u c gi tr 1 v c kt ni dc theo chiu nm ngang v chiu thng ng .
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
cnh ca chng tip xc nhau
145
+ 26 kt ni : Cc pixel c kt ni nu cc mt , cnh hoc gc ca chng chm 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 0 0 0 0 0
0 1 1 0 0 0
0 1 1 0 0 0
0 0 0 1 1 0
0 0 0 1 1 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 1 0
0 1 0
0 1 0
c- Cc thao tc t lp ( Flood Fill )
- Hm imfill thc hin mt thao tc t lp trn nh nh phn v nh en trng . Vi nh
nh phn , hm imfill thay i cc pixel nn c kt ni ( c gi tr 0 ) thnh cc pixel
146
foreground ( c gi tr 1 ) . Qu trnh thay i ny dng li khi chng t n bin ca
cc i tng . Vi cc nh en trng , hm imfill thay cc gi tr cng ca vng en
( c bao quanh bi cc vng trng hn ) thnh cng mc cng vi cc pixel xung
quanh . Thao tc ny s c ch khi loi b cc artifact khng thch hp khi nh
Ch nh kiu kt ni trong cc thao tc t lp
- Vi nh nh phn v nh en trng , bin ca thao tc t lp c quyt nh bi kiu
kt ni m ta ch nh
- Mi nh hng ca kiu kt ni c th c minh ho vi ma trn sau :
BW = [ 0 0 0 0 0 0 0 0;
0 1 1 1 1 1 0 0;
0 1 0 0 0 1 0 0;
0 1 0 0 0 1 0 0;
0 1 0 0 0 1 0 0;
0 1 1 1 1 0 0 0;
0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0];
- Nu nn l kiu 4 kt ni , nh nh phn ny cha hai phn t background ring bit
( phn trong vng v ngoi vng ) . Nu nn l kiu 8 kt ni , cc pixel kt ni cho v
ch c mt phn t background .
Ch nh im bt u
- Vi cc nh nh phn , ta c th ch ra im bt u ca thao tc t lp bng cch s
dng hm imfill theo kiu tng tc , la chn cc pixel khi u vi con tr chut .
Chng hn , nu ta gi hm imfill , ch ra pixel BW(4,3) l pixel khi u , hm imfill ch
t bn trong vng bi v , theo mc nh nn l kiu 4 kt ni ( 4 connected )
imfill(BW,[4 3])
ans =
0 0 0 0 0 0 0 0
0 1 1 1 1 1 0 0
0 1 1 1 1 1 0 0
0 1 1 1 1 1 0 0
0 1 1 1 1 1 0 0
147
0 1 1 1 1 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
- Nu ta ch ra cng mt im bt u nhng s dng nn kiu 8 kt ni , hm imfill s t
y ton b nh
imfill(BW,[4 3],8)
ans =
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
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 u
trong mi l hng . minh ho , v d sau y s t lp cc l trong mt nh en trng :
[X,map] = imread('spine.tif');
I = ind2gray(X,map);
Ifill = imfill(I,'holes');
148
imshow(I);figure, imshow(Ifill)
Cc hm cc i v cc tiu
149
- Mt nh c th c nhiu vng ln hoc nh nhng ch mt vng cc i v cc tiu .
Vic tnh ton cc nh v y ca nh c th c s dng to ra cc nh ghi ( marker
images ) - c s dng trong ti to hnh thi .
- Hnh sau y minh ho khi nim trong 1 chiu :
150
- nh nh phn c tr v t hm imregionalmax xc nh tt c cc cc i vng
151