You are on page 1of 13

27/03/2013 Cc hm x l nh trong matlab

UserName

Remember Me Login
Forgot password? || Register !

Viet Nam English

HOME PRODUCTS R&D LABS VIDEO DEMO CONTACT


Trang Ch Nghin Cu H-Lab On Youtube Lin H

DANH MUC SAN PHAM


Cc hm x l nh trong matlab
Shop
SATURDAY, 13 AUGUST 2011 17:02 ADMINISTRATOR
Development Kit
14 likes 2 dislikes
Peripheral Modules There are no translations available.

ROBOCON Equipments
Trong phn ny chng ta s tm hiu v cc hm x l nh trong matlab. Nh chng ta bit,
Programmer/Debugger
matlab l mt ngn ng rt mnh v h tr rt tt cc thao tc lm vic trn nh. V vy vic s dng
Education Robot matlab cho cc ng dng x l nh gn nh l la chn hng u cho nhng ai mun thc hin cc
thut ton x l trn phn mm.
Products

DC Servo Motor
Xem Phn 1 : Gii thiu v matlab v x l nh
Ph kin - Spare part

All

Cc kiu nh trong Matlab

R&D LABS a) 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
FPGA/ASIC RESEARCH 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
DSP RESEARCH 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
MCU APPLICATION
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
EMBEDDED SYSTEM nhin, ta khng b gii hn khi s dng bn mu mc nh, ta c th s dng bt k bn mu no.

AUTOMATIC SYSTEMS b) 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
SUPPORT cha mt nh cng nh mt ma trn n, 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.
ROBOCON
Nhng phn t trong ma trn cng i din cho cc cng khc nhau hoc xm. Nhng im c cng bng 0 thng
BASIC MCU/DSP/FPGA c i din bng mu en v cng 1,255 hoc 65535 thng i din cho cng cao nht hay mu trng.

c) nh nh phn (Binary Images)


NGHIN CU / TI
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 hoc tt
DOCUMENT DOWNLOAD (on hoc off). Mt nh nh
phn c lu tr nh mt mng logic ca 0 v 1.
COMMENT LATEST
d) 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
file testbench vit
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
ring. fi...
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
Anh i, my code ho lu tr nh RGB ging nh mt nh 24 bits trong R, G, B chim tng ng 8 bit mt. iu ny cho php nhn c 16 triu
ny u gp t... mu khc nhau.
Minh da updated lai 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
roi nha 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 )
ad lam on check lai 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
link nhe, ... 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
sao minh download
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).
ko dc vay ??

Cc hm x l nh c bn trong Matlab

a) c v ghi d liu nh

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 bit 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.

hlab.com.vn/index.php?option=com_content&view=article&id=202%3Ax-ly-nh-vi-matlab&catid=47%3Ac-bn-v-dsp&Itemid=113&lang=en 1/13
27/03/2013 Cc hm x l nh trong matlab

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 ny 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.

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 Map vi bn mu kt hp vi n map sau ghi nh xung mt file bitmap.

load clown
whos
Name Size Bytes Class
X 200x320 512000 double array
caption 2x1 4 char array
map 81x3 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 bit nh mt tham s ph. V d sau s chi mt nh cng I vi mt file nh 4 bit PNG.

imwrite(I,'clown.png','BitDepth',4 );

H-LAB ON YOUTUBE
- 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 bit

- Trong mt s nh dng file, mt nh nh phn c th c lu trong mt nh dng 1 bit. Nu nh dng file tr gip n, Matlab
ghi nh nh phn nh nh 1 bit theo mc nh. Khi ta c mt nh nh phn vi nh dng 1 bit, Matlab i din n trong khng
gian lm vic nh mt mng lgic.
- V d sau c mt nh nh phn v ghi n di dng file TIFF. Bi v nh dng TIFF tr gip nh 1 bit, file c ghi ln a theo nh
dng 1 bit:

BW = imread('text.png');

imwrite(BW,'test.tif');

VISITOR COUNTER
kim tra chiu su bit ca file test.tif, gi hm iminfo v kim tra trng BitDepth ca n:

info = imfinfo('test.tif');info.BitDepth
Hm nay 2988
ans =1
Hm qua 5480

Thng ny 172206 Ch : Khi ghi file nh phn, Matlab thit lp trng ColorType thnh grayscale.

Tt c 197974 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:


We have: 28 guests online
Chrome 25.0.1364.172, Windows + logical: Nu nh dng nh ra (Output Image) c ch r l tr gip nh 1 bit, hm imwrite to mt file nh 1 bit. Nu nh dng
Hm nay: Mar 27, 2013 nh ra c ch r l khng tr gip nh 1 bit (nh JPEG), hm imwrite chuyn nh ti mt nh thuc lp uint8.
Visitors Counter
+ uint8: Nu nh dng nh ra c ch r l tr gip nh 8 bit, hm imwrite to mt nh 8 bit

hlab.com.vn/index.php?option=com_content&view=article&id=202%3Ax-ly-nh-vi-matlab&catid=47%3Ac-bn-v-dsp&Itemid=113&lang=en 2/13
27/03/2013 Cc hm x l nh trong matlab
+ uint16: Nu nh dng nh ra c ch r tr gip nh 16 bit (PNG hoc TIFF), hm imwrite to mt nh 16 bit. Nu nh dng nh
ra khng tr gip nh 16 bit, hm chuyn i d liu nh ti lp uint8 v to mt nh 8 bit.

+ double: Matlab chuyn d liu nh ti dng uint8 v to mt nh 8 bit bi v hu ht cc file nh s dng nh dng 8 bit.

Truy vn mt file ho

- Hm imfinfo cho php ta c th nhn c thng tin v mt file nh c tr gip bi toolbox.


C php: imfinfo(filename,fmt)
Cc thng tin c cung cp bi hm imfinfo l: filename, filemodedate, filesize, format, formatversion, width, height, bitdepth,
colortype 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.
AI ANG ONLINE
Chiu cao nh tnh theo pixel.
Now online: S lng bt trn mt pixel.
Kiu nh: RGB, ch s
25 guests
b) Hin th nh
Latest members:
Dng hm imview
xlhwbqvom
- 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
Nguyen Trung Thanh mt nh m c nhp vo trong khng gian lm vic ca Matlab.

moonfig = imread('moon.tif');
Total members: 1527
imview(moonfig);

RSS
Ta cng c th ch nh tn ca file nh nh trong v d sau:
Feed Entries

imview('moon.tif');

- File nh phi c mt trong th mc hin ti hoc trong ng dn ca Matlab. C u 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.

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 getimage. Hm ny s nhn d liu nh t handle ca mt i
tng nh hin ti. C hng hn: moon = getimage; S gn d liu nh t moon.tif vo bin moon.

c) 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. C hng 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.
C h : Khi chuyn i mt nh t dng ny sang dng khc, nh kt qu c th khc nh ban u. C hng hn, nu ta
chuyn i 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 chuyn i kiu nh:

hlab.com.vn/index.php?option=com_content&view=article&id=202%3Ax-ly-nh-vi-matlab&catid=47%3Ac-bn-v-dsp&Itemid=113&lang=en 3/13
27/03/2013 Cc hm x l nh trong matlab
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 trn (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. C hng hn, ta c th chuyn i
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.

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. C hng hn, mt mu c th c i din bi cc gi tr
hue, saturation v cc gi tr thnh phn (HSV). C c 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. C c 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.

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

e) 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. C hng 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. C c 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.

Lut ct b trong s hc nh

- Kt qu ca s hc nguyn c th d dng trn s dng cho lu tr. C hng hn, gi tr cc i ta c th lu tr trong


uint8 l 255. C c php ton s hc c th tr v gi tr phn s - khng c biu din bi mt chui s nguyn.
- C c 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 C hng hn, nu d liu c kiu uint8, kt qu tr v nu ln hn 255 ( bao gm Inf
) th c gn l 255.

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. C hng hn tnh gi tr trung


bnh ca hai nh:
C =(A+B) /2
Ta c th nhp vo nh sau:

I = imread('rice.png');
I2 = imread('cameraman.tif');
K = imdivide(imadd(I,I2), 2); % not recommended

hlab.com.vn/index.php?option=com_content&view=article&id=202%3Ax-ly-nh-vi-matlab&catid=47%3Ac-bn-v-dsp&Itemid=113&lang=en 4/13
27/03/2013 Cc hm x l nh trong matlab
- 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

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.

a) Bng thut ng

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 : C c 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. C hng hn thay 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 : C c gi tr pixel ra c gn gi tr ca pixel nm trong mt vng gn pixel .

b) Ni suy

Ni suy l qu trnh s dng c lng mt gi tr nh mt v tr gia cc pixel. C hng 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 )
C c 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.
- C c 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. C c 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 song khi mt nhiu thi gian hn song tuyn tnh. Tuy nhin, s lng pixel ln hn, chnh xc s tt
hn.

Kiu nh

- C c 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.

c) Thay i kch thc nh

hlab.com.vn/index.php?option=com_content&view=article&id=202%3Ax-ly-nh-vi-matlab&catid=47%3Ac-bn-v-dsp&Itemid=113&lang=en 5/13
27/03/2013 Cc hm x l nh trong matlab
- thay i kch thc ca mt nh, s dng hm imresize. S dng hm ny ta c th:
+ C h ra kch thc ca nh kt qu.
+ C h ra phng php ni suy c s dng.
+ C h 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.

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.


C hng hn, lnh sau tng kch thc ca nh I ln 1.25 ln:

Hnh 1 nh trc v sau khi imresize

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

C h : Nu kch thc c ch ra khng c cng t l vi nh vo, nh ra s b bin dng

Ch nh phng php ni suy c s dng.

- Theo mc nh, hm imresize s dng phng php ni suy cc pixel gn nht (nearest neighbor interpolation)
tnh gi tr cc pixel ca nh ra. Tuy nhin, ta c th ch nh cc phng php ni suy khc. Bng sau y lit k cc
phng php ni suy c tr gip theo th t ca phc tp.

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

hlab.com.vn/index.php?option=com_content&view=article&id=202%3Ax-ly-nh-vi-matlab&catid=47%3Ac-bn-v-dsp&Itemid=113&lang=en 6/13
27/03/2013 Cc hm x l nh trong matlab
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.
C h : Thm ch s dng mt b lc thng thp, cht lng ca nh vn b nh hng do thng tin lun b mt trong
qu trnh ni suy
- Hm imresize khng p t mt b lc thng thp ln nh nu phng php ni suy cc pixel gn nht c s dng.
Phng php ni suy ny ban u c s dng vi cc nh ch s v b lc thng thp khng thch hp cho kiu nh
ny.
- Ta cng c th ch ra mt b lc t to thay cho cc b lc c sn.
Hm imresize
C php ca hm ny nh sau:

B = imresize(A,m)
B = imresize(A,m,method)
B = imresize(A,[mrows ncols],method)
B = imresize(...,method,n)
B = imresize(...,method,h)

Din gii

+ B=imresize(A,m): Tr li mt nh B ln gp m ln nh A (kch thc hnh hc) s dng phng php ni suy mc


nh (nearest - neighbor interpolcation). A c th l mt nh ch s, nh en trng, RGB hoc nh nh phn. Nu m nm
gia 0 v 1, B s nh hn A. Nu m ln hn 1, B s ln hn A.
+ 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 vector [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 ).

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

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)

hlab.com.vn/index.php?option=com_content&view=article&id=202%3Ax-ly-nh-vi-matlab&catid=47%3Ac-bn-v-dsp&Itemid=113&lang=en 7/13
27/03/2013 Cc hm x l nh trong matlab

Hnh 2 nh trc v sau khi imrotate

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. C c pixel nm


ngoi bin ca nh gc c gn gi tr 0 nh th nn mu en trong nh ra. Nu ta ch ra chui crop nh mt tham s,
hm imrotate s xn nh ra ti kch thc nh nh vo.

Hm imrotate

C php ca n nh sau:

B = imrotate(A,angle)
B = imrotate(A,angle,method)
B = imrotate(A,angle,method,bbox)

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. Hm 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)

Hnh 3 nh c quay theo chiu ngang

e) Xn nh (image cropping)

- trch mt vng ch nht ca mt nh, s dng hm imcrop. Hm imcrop chp nhn hai tham s chnh:

hlab.com.vn/index.php?option=com_content&view=article&id=202%3Ax-ly-nh-vi-matlab&catid=47%3Ac-bn-v-dsp&Itemid=113&lang=en 8/13
27/03/2013 Cc hm x l nh trong matlab
+ nh cn xn
+ C c 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);

Hnh 4 nh trc v sau khi imcrop

Hm imcrop

- C php ca n nh sau:

I2 = imcrop(I)
X2 = imcrop(X,map)
RGB2 = imcrop(RGB)
I2 = imcrop(I,rect)
X2 = imcrop(X,map,rect)
RGB2 = imcrop(RGB,rect)
[...] = imcrop(x,y,...)
[A,rect] = imcrop(...)
[x,y,A,rect] = imcrop(...)

Din gii

- Hm imcrop xn mt nh theo mt hnh ch nht c ch nh.

I2=imcrop(I) ;
X2=imcrop(X,map);
RGB2=imcrop(RGB);

Hm imcrop s hin th nh I v i ta ch ra hnh ch nht cn xn bng chut


- Nu ta b qua cc tham s, hm imcrop thao tc trn nh ca trc hin ti.
- ch nh mt hnh ch nht ta dng tr chut nh ni trn
- Ta cng c th ch ra kch thc ca hnh ch nht m khng thao tc trc tip nh cc c php sau:

I2 = imcrop(I,rect)
X2 = imcrop(X,map,rect)
RGB2 = imcrop(RGB,rect)

Trong : rect l mt vector 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 vector
hai phn t ch ra Xdata v Ydata. C hng 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. C hng hn:

[A,rect] = imcrop(...)

[x,y,A,rect] = imcrop(...)

hlab.com.vn/index.php?option=com_content&view=article&id=202%3Ax-ly-nh-vi-matlab&catid=47%3Ac-bn-v-dsp&Itemid=113&lang=en 9/13
27/03/2013 Cc hm x l nh trong matlab
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. C hng
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)

Hnh 5 nh trc v sau khi imcrop theo 1 ta cho trc

f) 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. C c kiu bin i m maketform tr gip bao gm:
+ affine: Bin i c th bao gm: translation ( dch ), rotation ( quay ), scaling, stretching v shearing. C c 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.
C h : 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. C hng
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)

hlab.com.vn/index.php?option=com_content&view=article&id=202%3Ax-ly-nh-vi-matlab&catid=47%3Ac-bn-v-dsp&Itemid=113&lang=en 10/13
27/03/2013 Cc hm x l nh trong matlab
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)

Hnh 6 nh trc v sau khi imtransforms

- C c tu chn ca hm imtransform cho php ta iu khin nhiu kha cnh ca vic bin i. C hng 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. C u 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 vector
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,...): C h ra cc tham s iu khin nhiu kha
cnh khc nhau ca bin i khng gian. Bng sau lit k cc tham s m ta c th ch ra.

Tham s Din gii


UData C hai tham s ny l cc ve ctor hai phn t thc. Udata v Vdata ch ra v tr k hng gian
ca nh A trong k hng gian vo 2 chi u U-V. Hai phn t ca Udata cho to u (honh
VData ) ca ct u ti n v cui cng ca A. Hai phn t ca Vdata cho to v ( tung ) ca
hng u ti n v cui cng ca A.

Gi tr m c 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 ve ctor hai phn t thc ch ra v tr k hng gian ca nh ra B trong
k hng gian ra 2 chi u X-Y. Hai phn t ca Xdata ch ra honh x ca ct u ti n v cui
Ydata cng ca B. Hai phn t ca Ydata ch ra tung ca hng u ti n v cui cng ca B.

N u Xdata v Ydata k hng c ch ra, hm im transform c lng gi tr cho chng c


th cha ton b nh ra b bi n i

XYScale L ve ctor vi m t hoc hai phn t thc. Phn t u ti n ca XYScale ch ra chi u rng ca
m i pix e l vo trong k hng gian X-Y. Phn t th hai (n u tn ti) ch ra chi u cao ca m i
pix e l ra. N u XYScale ch c m t phn t, gi tr ny s c dng cho c chi u rng v chi u
cao.

N u XYScale k hng c ch nh nhng Size c ch ra th XYScale c tnh ton t


Size ,Xdata v Ydata.

Size Mt ve ctor hai phn t nguy n k hng m . Size ch ra s hng v ct trong nh ra B. Vi


chi u cao hn, k ch c ca B c ly trc ti p t A. Ni cch k hc, size (B,k ) tng ng vi
size (A,k ) vi k >2. N u Size k hng c ch nh, n s c tnh t Xdata,Ydata v
XYScale

hlab.com.vn/index.php?option=com_content&view=article&id=202%3Ax-ly-nh-vi-matlab&catid=47%3Ac-bn-v-dsp&Itemid=113&lang=en 11/13
27/03/2013 Cc hm x l nh trong matlab
FillValue s Mt m ng cha m t hoc nhi u gi tr t (fill value s). Fill value s c s dng cho cc pix e l
tr n nh ra k hi v tr c bi n i tng ng tr n nh vo hon ton l vi n ngoi ca nh
ra. n u A l 2 chi u, Fillvalue s phi v hng. Tuy nhi n, n u chi u ca A ln hn 2,
FillValue s c th l m t m ng m k ch thc ca n tho m n rng buc sau:

size (fill_value s,k ) phi bng size (A,k +2) hoc 1.

C hng hn, n u A l m t nh R GB unit8 c k ch thc 200x 200x 3 th cc k h nng ca


FillValue s bao gm :

0: T vi m u e n
[0;0;0]: T vi m u e n
255: T vi m u trng
[255;255;255]: T vi m u trng
[0;0;255]: T vi m u x anh
[255;255;0]: T vi m u vng

N u A l 4 chi u 200x 200x 3x 10 th FillValue s c th l 1 v hng 1x 10,3x 1,3x 1

V d
p mt php dch chuyn ngang 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)

Hnh 7 nh trc v sau khi imtransforms vi 1 cng nh

Nh vy l chng ta tm hiu xong cc hm matlab h tr cho x l nh.


Phn tip theo chng ta s tm hiu v cc thut ton x l nh

___________________

Reference

Lun vn H Cng Nghip TP HCM


Gio trnh matlab
Khoa Ton -Tin, H T Nhin ,HQG TP HCM

Comments

# tgg 2011-09-14 07:02 0


agg
Reply | Reply with quote | Quote

# nth 2011-09-14 07:03 0


cho file pdf i bn
Reply | Reply with quote | Quote

# ninhhuong 2012-02-16 22:48 0


ko c link down bn
Reply | Reply with quote | Quote

# Hoang 1 2012-02-17 06:50 0


Tong hop tu nhieu nguon,nen khong co file ban oi
Reply | Reply with quote | Quote

# lienhuong 2012-03-02 12:20 0

hlab.com.vn/index.php?option=com_content&view=article&id=202%3Ax-ly-nh-vi-matlab&catid=47%3Ac-bn-v-dsp&Itemid=113&lang=en 12/13
27/03/2013 Cc hm x l nh trong matlab
hay qua
Reply | Reply with quote | Quote

# lienhuong 2012-03-02 12:24 0


cm n ban v chia s nhng bi hc b ch ny
Reply | Reply with quote | Quote

# bkit 2012-03-31 16:26 0


bai viet hay cam on nhieu
Reply | Reply with quote | Quote

# 123123 2012-04-22 08:04 0

Reply | Reply with quote | Quote

# xugo 2012-05-06 09:57 0


hay . thanks
Reply | Reply with quote | Quote

# vhung 2012-09-13 08:05 0


tuyt vi.
cm n bn nhiu
Reply | Reply with quote | Quote

# pit 2012-10-02 22:59 0


cho em hi trong matlap lm sao phn bit c tin ng
trong hnh chp c cc mnh gi tin khc nhau
gip em vi
Reply | Reply with quote | Quote

# tonyk 2012-11-27 15:19 0


thank a.
phn tip theo u h a?
Reply | Reply with quote | Quote

Refresh comments list


RSS feed for comments to this post

Add comment

Name (required)

1000 sym bols le ft

Send

J C omments

RELATED ARTICLES

2011-01-31 - Gii thiu c bn v x l nh


2011-02-01 - Thresholding v Segmentation
2011-02-01 - C bn v x l nhiu
2011-02-01 - Histogram Equalization
2011-03-11 - C bn v PIC
2011-08-11 - Gii thiu v matlab v x l nh

COPYRIGHT 2013 H LABORATORY. ALL RIGHTS RESERVED. MODIFIED BY HOANG NGUYEN.


FEED ENTRIES

hlab.com.vn/index.php?option=com_content&view=article&id=202%3Ax-ly-nh-vi-matlab&catid=47%3Ac-bn-v-dsp&Itemid=113&lang=en 13/13

You might also like