You are on page 1of 151

Mc lc

1 . Cc kiu nh , cc thao tc nh c bn trong Toolbox ------------- Trang 1


2. Php x l trn vng chn ------------------------------------------------- Trang 16
3. X l nh m ------------------------------------------------------------------Trang 23
4. Mu sc------------------------------------------------------------------------- Trang 38
5. Bin i nh ------------------------------------------------------------------- Trang 52
6. Bin i khng gian nh ---------------------------------------------------- Trang 78
7. Phn tch v lm giu nh -------------------------------------------------- Trang 98
8. Cc bin i hnh thi nh ------------------------------------------------- Trang 129
I Cc kiu nh , cc thao tc nh c bn trong Toolbox
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

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

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)
Cc mt phng mu ring r ca mt nh RGB
- Ch rng mi mt phng mu ring r cha mt khong trng . Khong trng tng
ng vi gi tr cao nht ca mi mu ring r . Chng hn trong nh mt phng R , vng
trng i din cho s tp trung cao nht ca mu thun khit . Nu R c trn vi G
hoc B ta s c mu xm . Vng mu en trong nh ch ra gi tr ca pixel m khng
cha mu R=0. Tng t cho cc mt phng mu G v B .

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

, 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

v cc gi tr thnh phn (HSV ) . Cc phng php khc cho vic biu din mu c
gi l khng gian mu .
- Toolbox cung cp mt tp cc th tc chuyn i gia cc khng gian mu . Cc hm
x l nh t chng coi d liu mu sc di dng RGB tuy nhin , ta c th x l mt
nh m s dng cc khng gian mu khc nhau bng cch chuyn i n sang RGB sau
chuyn i nh c x l tr li khng gian mu ban u .
- c v ghi d liu nh
- Phn ny s gii thiu cch c v ghi d liu nh
1. c mt nh ho
- Hm imread c mt nh t bt k nh dng no c tr gip trong bt k chiu su
bit no c tr gip . Hu ht cc file nh s dng 8 bt cha gi tr ca pixel . Khi
chng c c vo b nh , Matlab cha chng di dng uint8 . Vi cc file tr gip
16 bt d liu , PNG v TIFF , Matlab cha chng di dng uint16
Ch : Vi nh ch s , imread lun lun c bn mu vo trong mt chui thuc lp
double , thm ch mng nh t n thuc lp uint8 hay uint16
- Chng hn , on m sau s c mt nh RGB vo khng gian lm vic ca Matlab lu
trong bin RGB
RGB=imread(football.jpg);
- Trong v d ny , imread s nhn ra nh dng file s dng t tn file . Ta cng c th
ch ra nh dng file nh mt tham s trong hm imread . Matlab tr gip rt nhiu nh
dng ho thng dng chng hn : BMP , GIF , JPEG , PNG , TIFF bit thm
cc kiu gi hm v tham s truyn vo , xem tr gip online ca Matlab .
c nhiu nh t mt file ho
- Matlab tr gip mt s nh dng file ho chng hn nh : HDF v TIFF , chng
cha nhiu nh . Theo mc nh , imread ch tr gip nh u tin trong file . nhp
thm cc nh t file , s dng c php c tr gip bi nh dng file . Chng hn , khi
c s dng vi TIFF , ta c th s dng mt gi tr ch s vi imread ch ra nh m
ta mun nhp vo . V d sau y c mt chui 27 nh t mt file TIFF v lu nhng
nh an trong mt mng 4 chiu . Ta c th s dng hm iminfo xem bao nhiu nh
c lu tr trong file :
mri = uint8(zeros(128,128,1,27)); % preallocate 4-D array

for frame=1:27
[mri(:,:,:,frame),map] = imread('mri.tif',frame);
end
- Khi file cha nhiu nh theo mt s kiu nht nh chng hn theo th t thi gian , ta
c th lu nh trong Matlab di dng mng 4 chiu . Tt c cc nh phi c cng kch
thc .
2. Ghi mt nh ho
- Hm imwrite s ghi mt nh ti mt file ho di mt trong cc nh dng c tr
gip . Cu trc c bn nht ca imwrite s yu cu mt bin nh v tn file . Nu ta gp
mt phn m rng trong tn file , Matlab s nhn ra nh dng mong mun t n . V d
sau ti mt nh ch s X t mt file Mat vi bn mu kt hp vi n map sau ghi
nh xung mt file bitmap .
load clown
whos
Name
X
caption
map

Size
200x320
2x1
81x3

Bytes Class
512000 double array
4 char array
1944 double array

Grand total is 64245 elements using 513948 bytes


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

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 :

+ 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

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 =
Filename: [1x47 char]
FileModDate: '24-Dec-2000 19:54:47'
FileSize: 525436
Format: 'DICOM'
FormatVersion: 3
Width: 512
Height: 512
BitDepth: 16
ColorType: 'grayscale'
SelectedFrames: []
FileStruct: [1x1 struct]
StartOfPixelData: 1140
MetaElementGroupLength: 192
FileMetaInformationVersion: [2x1 double]
MediaStorageSOPClassUID: '1.2.840.10008.5.1.4.1.1.7'
MediaStorageSOPInstanceUID: [1x50 char]
TransferSyntaxUID: '1.2.840.10008.1.2'
ImplementationClassUID: '1.2.840.113619.6.5'
.
.
.

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 .
II . X l trn c s vng chn ( Region Based Processing )
- Trong phn ny , ta s xem xt nhng kha cnh sau :
+ Bng thu ng : Cung cp cc thut ng c s dng trong cc php x l
+ Ch nh r mt vng ta quan tm : M t lm sao ch ra mt vng quan tm s dng
hm roipoly
+ Lc mt vng : Din t lm sao p t mt php lc ln mg vng nht nh ca nh
s dng hm roifilt2
+ T y mt vng : S dng hm roifill t y mt vng chn
1. Bng cc thut ng :
Tn thut ng

Din t

Binary mask

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

2. Ch nh mt vng quan tm trn nh


- Mt vng quan tm l mt phn ca nh m ta mun lc hoc thi hnh cc thao tc khc
trn n . Ta nh ngha mt vng quan tm bng cch to ra mt mt n nh phn , l
mt nh nh phn c cng kch thc vi nh ta mun x l . Mt n cha gi tr 1 cho tt
c cc pixel nm trong vng quan tm v cha gi tr 0 cho cc pixel nhng vng khc .
a - Chn mt hnh a gic
- Ta c th s dng hm roipoly ch ra mt vng hnh a gic quan tm . Nu ta gi
hm roipoly khng c tham s , con tr thay i thnh hnh ch thp khi n i qua nh
ang c hin th trn trc hin ti . Sau , ta c th ch ra nh ca a gic bng cch
kch tr chut trn nh . Khi thc hin xong vic chn cc nh , nhn phm Enter kt
thc . hm roipoly tr v mt nh nh phn c cng kch thc vi nh gc cha gi tr 1
trong vng c chn v 0 phn cn li .
I = imread('pout.tif');
imshow(I)
BW = roipoly;
- Ta cng c th s dng hm roipoly m khng tng tc . C php ca hm ny nh sau
:
BW = roipoly(I,c,r)
BW = roipoly(I)
BW = roipoly(x,y,I,xi,yi)
[BW,xi,yi] = roipoly(...)

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
PSF

m nh

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');

C - Kh m vi gii thut Lucy- Richardson


- S dng hm deconvlucy kh m mt nh bng cch s dng gii thut LucyRichardson . Hm ny c th c s dng hiu qu khi bit c hm PSF nhng bit t
v nhiu tc ng ph ln nh

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.

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');

d - S dng gii thut

trn deconvolution

hm

deconvblind kh

m mt nh . Gii thut

ny c th c s

dng

khng c thng tin

dng
hiu

qu

khi

v m hoc nhiu c

bit

Hm

deconvblind khi phc nh v PSF ng thi , s dng mt qu trnh lp tng t nh


gii thut Lucy-Richardson
- Hm deconvblind ch ging nh hm deconvlucy , thi hnh mt vi s iu hp ti gii
thut Lucy-Richardson .
V d sau y minh ho vic s dng hm deconvblind . N s to mt nh gi m v sau
dng hm ny kh m .
1. c mt nh vo khng gian lm vic
I = imread('cameraman.tif');

31

figure; imshow(I); title('Original Image');

2. To hm PSF lm
PSF

m nh

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');

6. Tinh ch gi tr c

lng cho PSF .

PSF c xy dng li p c tr v t ln truyn u tin m kt qu t c mt


tuyn tnh kh tt . Vi ln truyn th hai , v d ny s dng mt gi tr PSF mi p1
ging nh p nhng vi bin nh pixel thit lp bng 0
P1 = P;
P1(find(P1 < 0.01))=0;
7. Tr li deconvolution , ch ra mng WEIGHT v sa gi tr PSF . Ch , nh phc hi
c t rung xung quanh vng c cng tng phn ln hn kt qu trc y :
[J2 P2] = deconvblind(Blurred,P1,50,[],WEIGHT);
figure; imshow(J2);
title('Newly Deblurred Image');
figure; imshow(P2,[],'notruesize');
title('Newly Reconstructed PSF');

35

IV Mu sc
1. Bng thut ng
Tn thut ng

Din gii

Approximation

Phng php nh phn mm la chn


s thay th mu sc trong mt s kin m
trc tip thch hp khng th tm thy
.Phng php xp x c tho lun y
l nh x bn mu , lng t ho ng
nht v lng t ho vi bin ng nh
nht

Indexed image

nh m cc gi tr pixel ca n c nh
s trc tip trong mt bn mu . Trong
Matlab , mt nh ch s c i din bi
mt mng thuc lp uint8 , uint16 hoc
double . Bn mu lun l mt mng
mx3 thuc lp double .

Intensity image

nh bao gm cc gi tr cng . Trong

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

2. Lm vic vi cc chiu su bt mn hnh khc nhau


- Hu ht cc mn hnh my tnh s dng 8,16,24 bt trn mt pixel mn hnh . S lng
bt trn mt pixel mn hnh quyt nh su bt mn hnh . su bt mn hnh quyt
nh n phn gii mu sc ca mn hnh l bao nhiu mu sc ring bit mn hnh
c th to ra .
- Bt chp s lng mu sc h thng c th hin th , Matlab c th lu tr v x l cc
nh vi su bt rt cao . Nhng nh ny c hin th tt nht trn h thng 24 bt mu
nhng thng kh tt trn h thng 16 bt mu .
a Tnh sau bt mn hnh
- tnh su bt ca mn hnh , s dng lnh sau y :
get(0,'ScreenDepth');
Gi tr nguyn tr v chnh l s bt trn mt pixel mn hnh
+ 8 : 8 bt hin th tr gip 256 mu . Mt mn hnh 8 bt c th sn sinh ra bt k mu sc
no c trn mn hnh 24 bt nhng ch 256 mu c th xut hin cng lc .
+ 16 :Ch hin th 16 bt thng s dng 5 bt cho mi thnh phn mu dn n 32
mc cho mi mu R,G,B . Do , n tr gip 32768 mu ring bit . Mt vi h thng s

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);

rng

nh

dithering c s lng

mu nhiu hn nhng trng

c v hi nht . nh

khng c dithering c t mu hn nhng tng phn gii khng gian so vi nh

42

dithering . Mt s nguy him khi gim mu m khng dither l nh mi c th cha cc


ng vin sai .
5. Chuyn i mu sc gia cc khng gian mu
- Toolbox biu din mu sc nh l cc gi tr RGB trc tip ( trong nh RGB) hoc gin
tip ( trong nh ch s - bn mu c lu theo nh dng RGB ) . Tuy nhin , c
nhng ch khc bn cnh RGB biu din mu . Cc ch khc nhau c xem
nh l cc khng gian mu ( color spaces ) bi v hu ht chng c th c nh x ti
mt h to 2D, 3D hoc 4D . V vy , mt c trng mu c to thnh t mt to
2D, 3D hoc 4D .
- Cc khng gian mu khc nhau tn ti bi v chng i din cho thng tin v mu sc
theo cc cch to ra s tnh ton thun tin hn hoc bi v chng cung cp mt cch
phn bit cc mu hiu qu hn . Chng hn , khng gian mu RGB nh ngha mt
mu nh l t hp ca 3 mu R,G,B . Cc ch mu khc m t mu sc bi cc gi tr
hue ( green ) , saturation ( dark green ) v nh sng hay cng .
- Toolbox tr gip nhng khng gian mu ny bng cch cung cp mt cch cho vic
chuyn i d liu mu t khng gian mu ny n khng gian mu khc thng qua cc
php bin i ton hc .
- Trong phn ny ta s :
+ Ch ra lm cch no chuyn d liu mu gia cc khng gian mu
+ Xem xt cch thc chuyn i khng gian mu s dng profile ICC
+ Xem xt mt s hm cho vic chuyn i gia khng gian mu RGB v 3 khng gian
mu thng dng khc l : YIQ , HSV v YCbCr .
a - Chuyn i gia cc khng gian mu c lp thit b
- Cc thut ng chun c dng m t mu sc nh : hue , sng v cng sng
l ch quan v lm cho s so snh tr nn kh khn .
- Nm 1931 , u ban quc t v ri CIE nghin cu s tip nhn mu sc ca con
ngi v pht trin mt chun c gi l chun CIE XYZ . Chun ny nh ngha 1
khng gian 3 chiu vi 3 gi tr c gi l 3 gi tr tc nhn ( trisimulus values ) nh
ngha mt mu sc . Chun ny vn cn c s dng rng ri cho n ngy nay .
- Trong nhng thp k ca c trng u tin , CIE pht trin mt vi c trng
khng gian mu ph c gng cung cp mt biu din mu tng t nhng thch hp

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
Khng gian mu

Din gii

Chuyn i c tr gip

XYZ

Chun gc c CIE nh xyY , uvl , uvL v L*a*b


ngha nm 1931

xyY

c trng CIE cung cp cc XYZ


gi tr mu c tiu chun
ho . Gi tr Y i din cho
sng v ging nh trong
XYZ

uvL

c trng CIE m c gng XYZ


to ra mt mt phng mu
ng nht hn . l l nh
sng

uvL

c trng CIE trong u XYZ


v v c nh li t l
ci thin tnh ng nht

L*a*b

c trng CIE nhm c XYZ


gng to ra s nh t l mu
sc ng nht hn . L* l t
l khng tuyn tnh ca L
c tiu chun ho ti mt
im tham chiu trng

L*ch

c trng CIE trong c l L*a*b


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

V d : Thc hin s chuyn i gia cc khng gian mu


- minh ho mt s chuyn i gia cc khng gian mu c lp thit b , v d ny
c mt nh RGB vo khng gian lm vic v chuyn i d liu mu sang khng gian
mu XYZ :
1. Nhp d liu khng gian mu . V d s c mt nh RGB vo khng gian lm vic
I_rgb = imread('peppers.png');
2. To mt cu trc chuyn i mu . Mt cu trc chuyn i mu nh ngha s chuyn
i gia hai khng gian mu . Ta s dng hm makecform to cu trc , ch ra mt
chui kiu cu trc lm tham s :
C = makecform('srgb2xyz'); - To mt cu trc chuyn i mu nh ngha s chuyn
i t RGB sang XYZ
3. Thc hin chuyn i . Ta s dng hm applycform thi hnh chuyn i , ch ra d
liu mu ta mun chuyn i v cu trc chuyn i mu nh ngha s chuyn i .
Hm applycform tr v d liu c chuyn i :
I_xyz = applycform(I_rgb,C);
whos
Name

Size

Bytes Class

1x1

7744 struct array

I_xyz

384x512x3

1179648 uint16 array

I_rgb

384x512x3

589824 uint8 array

b- Chuyn i gia cc khng gian mu ph thuc thit b

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

n 1 ,

mu

tng

ng s

cng

sng

hn .

- Hnh

sau

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
Tn thut ng

Din gii

Discrete transform

L bin i m gi tr u vo v ra ca n
l cc mu ri rc , bin i ny thng
thun li cho cc thao tc ca my tnh .
Bin i ri rc c ng dng bi Matlab
v toolbox x l nh bao gm bin i
Fourier ri rc ( DFT ) v bin i c-sin
ri rc ( DCT )

Frequency domain

L mt vng trong nh c i din

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.

- Hnh biu din sau y biu din bin ca bin i Fourier | F (1 , 2 ) | ca hm ch


nht nh trn .

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

3 . thu c kt qu tt hn , ta s dng cc lnh sau y :


F = fft2(f,256,256);
imshow(log(abs(F)),[-1 5]); 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=
8.0000

9.0000 15.0000

7.0000

6.0000

11.0000 17.0000 30.0000 19.0000 13.0000


15.0000 30.0000 45.0000 30.0000 15.0000
7.0000 21.0000 30.0000 23.0000

9.0000

4.0000 13.0000 15.0000 11.0000

2.000

Pht hin chi tit ca nh


- Bin i Fourier c th c s dng thc thi tng quan c lin h gn vi nhn
chp ( convolution ) . Tng quan c th c s dng pht hin chi tit trong mt
nh , trong trng hp ny , tng quan thng c gi l hp mu ( template matching
)
- V d sau minh ho vic s dng tng quan pht hin s c mt ca k t a trong
mt nh c ch :
1. c vo nh mu :
bw=imread(text.png);
2. To mt mu ( template ) lm hp bng cch trch k t a t nh :
a=bw(32:45,88:98);
Ta c th to nh mu bng cch s dng phin bn tng tc ca hm imcrop , s dng
hm pixval tnh to ca mt chi tit trong nh . Hnh sau y ch ra nh gc v nh
mu :

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

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)

Mc d cht lng ca nh nn b suy gim , n vn r nt thm ch gn 85% h s DCT


b b qua .
4 . Bin i Radon
- Hm radon trong toolbox x l nh tnh projections (php chiu ) ca mt ma trn nh
theo mt chiu nht nh . Php chiu ca mt hm f(x,y) l mt tp cc tch phn
ng . Hm radon tnh tch phn ng t nhiu ngun dc theo cc ng song song
hay tia theo mt chiu no . Cc tia ny cch nhau 1 n v pixel . biu din mt
nh , hm radon ly nhiu php chiu song song ca mt nh t cc gc khc nhau
bng cch quay ngun xung quanh mt tm quay l tm ca nh . Hnh sau ch ra mt
php chiu n mt gc quay nht nh .

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 .

Hnh sau y m t hnh hc ca bin i Radon

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

Bin i Radon ngc


- Hm iradon thi hnh bin i Radon ngc , chng thng c s dng trong cc ng
dng tomography . Bin i Radon ngc c th c s dng to cc nh t d liu
php chiu .
- Nh cp trc y , a ra nh I v thit lp gc th-ta , hm radon c th c
s dng tnh bin i Radon
R=radon(I,theta);
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)

2. Tnh bin i Radon ca nh phantom

vi

3 tp gi tr khc nhau ca theta . R1 c 18 php chiu , R2 c 36 v R3 c 90 .


theta1 = 0:10:170; [R1,xp] = radon(P,theta1);
theta2 = 0:5:175; [R2,xp] = radon(P,theta2);
theta3 = 0:2:178; [R3,xp] = radon(P,theta3);
3. Hin th th ca bin i Radon ca nh phantom . Hnh sau ch ra R3 bin i vi
90 php chiu .

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 .
VI - Bin i khng gian nh
- Bin i khng gian nh l thc hin nh x gia v tr cc pixel trong nh vo vi cc
pixel trong nh ra .
1 . Bng thut ng :
Tn thut ng

Din gii

Aliasing

Rng ca - xut hin khi gim kch thc


nh . Khi kch thc ca mt nh b gim ,
cc pixel gc b ly mu gim to ra t
pixel hn . Aliasing xy ra nh kt qu ca
vic gim kch thc nh thng xut hin
di dng bc thang ( c bit trong cc
nh c tng phn cao )

Antialiasing

Cc bin php chng rng ca cho nh

Bicubic interpolation

Gi tr ca cc pixel ra c tnh ton t


gi tr trung bnh ca 4x4 pixel ln cn

Bilinear interpolation

Ga tr ca pixel ra c tnh ton t gi tr


trung bnh ca 2x2 pixel ln cn

Geometric operation

Mt thao tc sa i quan h hnh hc ga


cc pixel trong mt nh. Chng hn thay
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 .
Cc phng php ni suy
- Toolbox s l nh cung cp 3 cch ni suy ho
+ Ni suy cc pixel gn nht ( nearest neighbor interpolation )
+ Ni suy song tuyn tnh ( Bilinear interpolation )
+ Ni suy song khi ( Bicubic interpolation )
Cc phng php ni suy lm vic theo mt cch ging nhau . Trong mi trng hp ,
tnh gi tr ca mt pixel c ni suy , chng tm im trong nh ra m pixel nm ti
. Sau , chng gn mt gi tr ti cc pixel ra bng cch tnh ton gi tr trung bnh
c trng s ca mt s pixel ln cn . Trng s da trn c s khong cch ti im ang
xt .
- Cc phng php ny khc nhau tp cc pixel m chng xem xt :
+ Vi ni suy cc pixel gn nht : pixel ra c gn gi tr ca cc pixel gn n nht .
Cc pixel khc khng c xem xt .
+ Ni suy song tuyn tnh , gi tr ca pixel ra l gi tr trung bnh theo trng s ca 2x2
pixel ln cn .
+ Ni suy song khi : gi tr ca pixel ra l trung bnh c trng s ca 4x4 pixel ln cn .
S lng cc pixel c xem xt nh hng n phc tp tnh ton . V vy , phng
php song tuyn tnh mt nhiu thi gian hn phng php th nht v phng php

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
- Cc hm s dng tuyn tnh yu cu mt tham s ch ra phng php ni suy . Vi hu
ht cc hm , phng php mc nh c s dng l nearest-neighbor interpolation .
Phng php ny to ra mt kt qu c th chp nhn c cho hu ht cc nh v l
phng php duy nht thch hp vi nh ch s . Vi nh cng hay RGB , tuy nhin
ta thng ch ra kiu song tuyn tnh hoc song khi bi v nhng phng php ny cho
kt qu tt hn
Vi nh RGB , ni suy thng c thc hin trn mt phng R,B,G mt cch ring bit
Vi nh nh phn , ni suy gy ra nhng nh hng m ta c th nhn thy c . Nu
s dng ni suy song tuyn tnh hoc song khi , gi tr tnh ton c cho pixel trong
nh ra s khng hon ton l 0 hoc 1. nh hng trn nh kt qu ph thuc vo lp ca
nh vo :
+ Nu lp nh vo l double , nh ra l mt nh en trng thuc lp double . nh ra
khng l nh nh phn bi v n bao gm cc gi tr khc 0 v 1 .
+ Nu nh vo l uint8 , nh ra l mt nh nh phn thuc lp uint8 . Gi tr ca cc pixel
c ni suy c lm trn thnh 0 hoc 1 . V vy , nh ra thuc lp uint8 .
Nu s dng phng php nearest-neighbor interpolation , nh ra lun l nh nh phn
bi v nhng gi tr ca pixel c ni suy c ly trc tip t nh vo .
3. Thay i kch thc nh
- thay i kch thc ca mt nh , s dng hm imresize . S dng hm ny ta c th
:
+ Ch ra kch thc ca nh kt qu
+ Ch ra phng php ni suy c s dng
+ Ch ra b lc c s dng ngn nga hin tng rng ca
Ch ra kch thc cho nh kt qu
- S dng hm imresize , ta ch th ch ra kch thc ca nh kt qu theo hai cch :
+ Bng cch ch ra h s phng i c s dng trn nh
+ Bng cch ch ra chiu ca nh kt qu

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
- Ta c th ch ra kch thc ca nh ra bng cch truyn mt vc t cha s lng hng
v ct ca nh sau cng . Nhng lnh sau y to mt nh ra Y vi 100 hng v 150 ct .
Y = imresize(X,[100 150])
Ch : Nu kch thc c ch ra khng c cng t l vi nh vo , nh ra s b bin
dng
Ch inh phng php ni suy c s dng

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 .
Gi tr tham s

Phng php ni suy

nearest

Ni suy cc phixel gn nht ( mc nh )

bilinear

Ni suy song tuyn tnh

biculic

Ni suy song khi

Trong v d sau , hm imresize s dng phng php ni suy song tuyn tnh :
Y=imresize(X, [100 150],bilinear);
S dng b lc ngn chn hin tng rng ca
- Vic gim kch thc ( hnh hc ) ca mt nh c th gy ra nhng nh hng nht nh
ln nh chng hn nh hin tng xut hin rng ca ti bin ca nh . iu ny l do
thng tin lun b mt khi ta gim kch thc mt nh . Rng ca xut hin nh nhng gn
sng trong nh sau cng .
- Khi gim kch thc ca nh s dng ni suy song tuyn tnh hoc song khi , hm
imresize t ng p t mt b lc thng thp ln nh trc khi ni suy . iu ny
gim nh hng ca rng ca trong nh ra . Ta c th ch ra kch thc ca b lc ny
hoc ch ra mt b lc khc thay th .
Ch : Thm ch s dng mt b lc thng thp , cht lng ca nh vn b nh
hng do thng tin lun b mt trong qu trnh ni suy
- Hm imresize khng p t mt b lc thng thp ln nh nu phng php ni suy cc
pixel gn nht c s dng . Phng php ni suy ny ban u c s dng vi cc
nh ch s v b lc thng thp khng thch hp cho kiu nh ny .
- Ta cng c th ch ra mt b lc t to thay cho cc b lc c sn .
Hm imresize
C php ca hm ny nh sau :
B = imresize(A,m)
B = imresize(A,m,method)
B = imresize(A,[mrows ncols],method)

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
Theo mc nh , hm imrotate to mt nh ra ln c th bao gm ton b cc pixel
ca nh gc . Cc pixel nm ngoi bin ca nh gc c gn gi tr 0 nh th nn mu

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
1x10,3x1,3x10

V d

93

l 1 v hng

+ 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
VI Phn tch v lm giu nh ( nng cao cht lng nh )
1. Bng thut ng
Tn thut ng

Din gii

Adaptive filter

B lc m tnh cht ca n bin i qua


mt nh ph thuc vo c tnh a phng
ca cc pixel trong nh

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

Gi tr tr li l cc gi tr ca cc pixel chn trong bin vals


vals =
0.1294

0.1294

0.5176

0.7765

0.6118

0.1294
0
0.4196

b- Intensity Profile
- Hm improfile tnh ton v v cc gi tr cng dc theo mt ng thng hoc mt
hnh gp khc trong mt nh . Ta c th cung cp to ca ng thng nh mt tham

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

Hm improfile hin th mt

th ca cc d liu nh

dc theo ng thng . Ch rng nh , y cch chng tng ng vi vng sng v ti


trong nh

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)

2 . Hin th mt th ng vin ca nh cng :


figure , imcontour (I,3)
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)

2. p php pht hin cnh Sobel v Canny ln nh v hin th chng :

104

BW1 = edge(I,'sobel');
BW2 = edge(I,'canny');
imshow(BW1)
figure, imshow(BW2)

b- Tm vt ca bin ( Boundary Tracing )


- Toolbox cung cp hai hm ta c th s dng tm bin ca cc i tng trong mt
nh :
+ Hm bwtraceboundary
+ Hm bwboundaries
- Hm bwtraceboundary tr li to hng v ct ca tt c cc pixel trn bin ca mt
i tng trong nh . Ta phi ch ra v tr ca mt pixel bin trn i tng nh l im
bt u ca vic tm vt .
- Hm bwboundaries tr li to hng v ct ca cc pixel bin ca tt c cc i tng
trong mt nh
- Vi c hai hm , cc pixel khc 0 thuc v mt i tng v pixel vi gi tr 0 ( zero )
to

thnh

nn

( background )

- V d sau s dng

hm

bwtraceboundary

tm

ng bao ca mt

vt

ca

i tng trong

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)

2. Chuyn nh thnh mt nh nh phn . Hm bwtraceboundary v hm bwboundaries ch


lm vic trn cc nh nh phn
BW = im2bw(I);
imshow(BW)

3. Tnh cc to

hng v ct ca

mt pixel trn bin

ca i tng ta

mun

bwboundary

tm

vt

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);

6. tm vt ca tt c cc ng bin ca tt c cc i tng trong nh , s dng hm


bwboundaries . Theo mc nh , hm ny tm bin ca tt c cc i tng trong mt nh
bao gm cc i tng trong cc vt khc . Trong nh nh phn c s dng trong v d
ny , mt s ng tin cha vng mu en m hm bwboundaries hiu nh cc i tng

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);
Hm bwboundaries tr v mt mng m mi phn t cha cc to hng , ct ca mi
i tng trong nh .
7. V cc ng bin ca tt c cc ng tin trn nh gc s dng cc to tr v t
hm bwboundaries
for k=1:10
b = boundaries{k};
plot(b(:,2),b(:,1),'g','LineWidth',3);
end

Chn bc u tin v hng cho vic tm vt


- Vi mt s i tng , ta phi quan tm khi la chn pixel lm im xut pht v hng
lm bc u tin ( North , South)

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 .

4. iu chnh cng nh ( Intensity Adjustment )


- K thut lm giu nh c s dng tng cht lng mt nh .S iu chnh cng
ca mt nh l mt k thut lm giu nh m nh x cc gi tr cng ca mt nh
ti mt khong mi . minh ho , hnh sau ch ra mt nh c tng phn thp vi
biu ca n . Ch trong biu ca nh , ti sao tt c cc gi tr t tp ti tm ca
vng .
I = imread('pout.tif');
imshow(I)

111

figure, imhist(I,64)

- Nu ta nh x li cc gi tr d liu t ton b vng cng [0,255] , ta c th tng


tng phn ca nh . Sau y ta s xem xt mt s k thut iu chnh cng
a- iu chnh cc gi tr cng n mt khong xc nh
- Ta c th iu chnh cc gi tr cng trong mt nh bng cch s dng hm
imadjust khi ta ch ra khong ca cc gi tr cng trong nh ra .
- Chng hn , m sau y s tng tng phn trong mt nh cng c tng
phn thp bng cch nh x li cc gi tr d liu in y ton b khong gi tr
cng [0,255]
I = imread('pout.tif');
J = imadjust(I);
imshow(J)
figure,
imhist(J,64)
- Hnh sau hin th

nh

c iu chnh

ca n .

112

biu

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 .

- V d di y minh ho tng quan Gamma. Ch rng trong li gi hm imadjust ,


khong d liu ca nh vo v ra c ch nh l cc ma trn rng . Khi ta ch nh mt
ma trn rng , hm imadjust s dng khong gi tr mc nh [0 ,1] . Trong v d ny , c
hai khong u rng v pha tri , iu ny c ngha rng tng quan Gamma c p t
m khng c bt k s iu chnh d liu no khc .
[X,map] = imread('forest.tif')
I = ind2gray(X,map);
J = imadjust(I,[],[],0.5);
imshow(I)
figure, imshow(J)

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)

- Hm histeq c th tr v mt vc t 1x256 ch ra mi gi tr vo c th c cho ta kt


qu ca gi tr ra . ( gi tr trong vct ny nm trong khong [0,1] bt k nh vo thuc
lp no ) . Ta c th v d liu ny nhn ng cong bin i . Chng hn :
I = imread('pout.tif');
[J,T] = histeq(I);
figure,plot((0:255)/255,T);

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)

4. S dng mt b lc median lc nh v hin th kt qu . Ch rng hm medfilt2


thc hin vic loi b nhiu tt hn v t lm m cc cnh
L = medfilt2(J,[3 3]);
figure, imshow(K)
figure, imshow(L)

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
VII Cc thao tc hnh thi
(Morphological Operations )
-

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

- Hnh sau y minh ho qu trnh x l nh cho mt nh en trng . Hnh ny ch ra qu


trnh xl ca mt pixel c th trong nh vo . Ch vic hm p t quy tc ti vng
ln cn ca pixel vo v s dng gi tr cao nht ca tt c cc pixel trong vng ny nh
l gi tr tng ng cho pixel ra nh th no .

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 =
Flat STREL object containing 25 neighbors.
Decomposition: 3 STREL objects containing a total of 13 neighbors
Neighborhood:
0

Phn tch phn t cu trc ( Structuring Element Decomposition )


- nng cao cht lng , hm strel c th ngt phn t cu trc thnh nhiu phn nh
hn k thut phn tch phn t cu trc
- Chng hn , gin n bi mt phn t cu trc vung 11x11 c th thu c bng cch
u tin , gin n vi phn t cu trc 1x1 v sau vi mt phn t cu trc 11x11 .
iu ny , theo l thuyt , dn n s tng tc ng k ca mt nhn t c 5.5 mc d
trong thc t tc thc t l nh hn .
- Vic phn tch phn t cu trc c s dng cho cc hnh a v bng l xp x , tt c
nhng phn tch khc l chnh xc . Phn tch khng c s dng vi mt phn t cu
trc bt k tr khi n l phn t cu trc phng - tt c cc pixel ln cn c gi tr 1
- quan st th t ca phn t cu trc c s dng trong php phn tch , s dng
phng thc STREL getsequence . Hm getsequence tr li mt mng ca cc phn t

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

seq = getsequence(sel)
seq =
3x1 array of STREL objects
seq(1)
ans =
Flat STREL object containing 5 neighbors.
Neighborhood:
0

seq(2)

133

ans =
Flat STREL object containing 4 neighbors.
Neighborhood:
0

seq(3)
ans =
Flat STREL object containing 4 neighbors.
Neighborhood:
0

c- Gin n nh ( Dilating an Image )


- gin n mt nh , s dng hm imdilate . Hm ny nhn hai tham s chnh :
+ nh vo l nh cn x l (en trng , nh phn hoc nh nh phn c ng gi )
+ Mt phn t cu trc c tr li t hm strel hoc mt ma trn nh phn nh ngha
vng ln cn ca mt phn t cu trc
- Hm imdilate cng chp nhn hai tham s tu chn l : PADOPT v PACKDOPT .
Tham s PADOPT tc ng ln kch c ca nh ra . Tham s PACKDOPT phn bit nh
vo nh nh nh phn ng gi .
- V d sau s gin n mt nh nh phn cha mt i tng l mt hnh ch nht :
BW = zeros(9,10);
BW(4:6,4:7) = 1
BW =
0

134

- 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 =
Flat STREL object containing 3 neighbors.
Neighborhood:
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=
Flat STREL object containing 5 neighbors.
Neighborhood:
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

4. phc hi cc

hnh ch nht vi

kch thc ban u , gin n nh va thu c s dng cng phn t cu trc trn
BW3 = imdilate(BW2,SE);
imshow(BW3

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 .

- ti to hnh thi nh ny , thc hin nhng bc sau :


1. To mt nh ghi . Vi cng phn t cu trc trong gin n v xi mn , cc c tnh
ca nh ghi quyt nh qu trnh x l c thc hin trong ti to nh . Cc nh
trong nh ghi s phn bit v tr ca cc i tng trong nh mt n m ta mun lm ni
bt .
Mt cch to mt nh ghi l tr mt hng s t nh mt n s dng hm s hc nh
imsubtract
marker = imsubtract(A,2)
marker =
8

12

12

12

12

12

12

12

12

12

8
142

16

16

16

16

16

16

16

16

16

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 ?

- Ti to hnh thi c th c xem nh mt qu trnh gin n lp li trn nh ghi cho n


khi cc ng vin ca nh ghi va kht di nh mt n . Theo cch ny , cc nh
trong nh ghi tri rng ra hay gin n

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 .

b- Tnh lin kt cc pixel


- Qu trnh x l hnh thi bt u ti nh ca nh ghi v tri rng ra cc phn cn li
ca nh trn c s tnh lin kt ca cc pixel . Tnh lin kt nh ngha cc pixel c lin
kt nh th no vi cc pixel khc . Chng hn , nh nh phn ny cha mt i tng
foreground - tt c cc pixel c gi tr 1. Nu foreground l 4 kt ni , nh c mt i
tng background v tt c cc pixel s c gi tr 0 . Tuy nhin , nu foreground l 8 kt
ni , foreground to mt vng ng v nh c hai i tng background ring r : cc
pixel trong vng v cc pixel ngoi vng
0

144

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 .

+ 8 kt ni ( 8 connected ) : Cc

pixel c kt ni nu cc cnh

hoc cc gc ca chng chm nhau .

iu ny c ngha rng nu hai

pixel lin nhau c gi tr 1 ( on ) , chng s l mt phn ca cng mt i tng bt k


chng c c kt ni theo chiu ngang ,dc hay cho hay khng .

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

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

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;

- 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

147

- 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

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)

d- Tm cc nh v y ( Peak and Valley )


- Cc nh en trng c th c xem nh trong khng gian 3 chiu : trc x, y i din cho
v tr cc pixel v trc z i in cho cng ca mi pixel . Theo cch hiu ny , cc
gi tr cng i din cho cao ging nh trong mt bn o c a hnh . Nhng
vng c cng cao v thp trong - nh tng ng vi nh v y ( thung lng ) , c
th l nhng c im hnh thi quan trng bi v chng thng nh du cc i tng
nh thch hp
- Chng hn , trong mt nh vi vi i tng c dng hnh cu , cc im c cng
cao c th i din cho nh ca cc i tng . S dng php x l hnh thi , cc gi tr
nh ny c th c s dng phn bit cc i tng trong mt nh .
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 :

Tm cc vng c cng cao hoc thp ca nh


- Toolbox cung cp cc hm m ta c th s dng tm cc vng c cng cao hoc
thp trong mt nh :
+ Hm imregionalmax v imregionalmin phn bit tt c cc cc tiu hoc cc i vng
+ Hm imextendedmax v imextendedmin phn bit tt c cc cc tiu hoc cc i vng
m ln hn hoc nh hn mt ngng xc nh
- Nhng hm ny chp nhn mt nh en trng nh l tham s v tr v mt nh nh phn
lm nh ra . Trong nh ra , cc tiu hoc cc i vng c thit lp ti 1 , tt c cc
pixel khc c thit lp gi tr 0 . Chng hn , nh n gin sau y cha hai cc i
vng chnh , cc khi pixel cha gi tr 13 v 18 v mt vi cc i nh hn c thit
lp gi tr 11

150

- nh nh phn c tr v t hm imregionalmax xc nh tt c cc cc i vng

- C th ta ch mun phn bit cc vng ca nh m s thay i cng l ln nht -


s chnh lch gia cc pixel v cc pixel ln cn ca chng n hn mt gi tr ngng
no . Chng hn , tm ch nhng cc i vng trong nh mu A m ln hn t nht
hai n v so vi cc ln cn ca chng , s dng hm imextendedmax
B = imextendedmax(A,2)

151

You might also like