You are on page 1of 20

Ti liu hng dn hc matlab dnh cho mn x l nh rt hay

Bo co n TVT1

GVHD : Bi Minh Thnh

CHNG I: TM HIU C BN V MATLAB V GUI


I) C bn v Matlab:
1) Gii thiu chung v Matlab: Matlab l mt cng c tnh ton trong k thut, c bit l cc bi ton v ma trn. Matlab cn cung cp cc toolboxes chuyn dng gii quyt nhng vn c th nh x l nh, x l s tn hiu, neuron, m phng Matlab cung cp Image Processing toobox, chuyn v x l nh. C th ni Matlab l mt cng c li hi gip cho vic thc hin cc gii thut x l nh nhanh chng v d hiu. 2) Khi ng Matlab: 2.1) M chng trnh:

-Click vo biu tng 2.2) Nhp lnh trong Matlab:

m chng trnh.

- Ca s Command line hin ra, y l ni chng ta s nhp lnh v Matlab a ra kt qu. - Lnh s thc hin ngay v th hin kt qu thc thi trn mn hnh. Vd: >> 5+3 ans = 8 - Trong nhiu trng hp ta khng mun th hin kt qu th sau khi g lnh phi thm du ;. 2.3) S dng cng c gip : -nh lnh help ten_lenh bit c cch s dng v cng dng ca ten_lenh. V d: help convert -Nu khng bit chnh xc tn lnh l g, ta c th dng lnh lookfor. -V d: lookfor convert s cho ta danh sch cc lnh c t convert trong phn tr gip. Trang 1

Bo co n TVT1

GVHD : Bi Minh Thnh

3) Php ton vi vector v ma trn: 3.1) Cc ton t: -Trong Matlab, khng cn khai bo bin. Matlab phn bit bin ch hoa v thng V d: A v a l hai bin khc nhau -Cc php ton s hc: +,-,*,/,\(chia o), ^. -Cc ton t quan h :< , <= , > , >= , == , ~= -Cc ton t logic : & , | (or) , ~ (not) -Cc hng : i s o j tng t i eps sai s 2-52 inf v cng ln NaN Not a number 3.2) Lm vic vi vector v ma trn: -Trong Matlab, t t c cc i tng u xem l ma trn. Mt ch s l mt ma trn 1*1 . Mt vector l ma trn mt hng hay mt ct. V d: >> a=[5 10 2;10 2 4; 2 4 5] a= 5 10 10 2 2 4 2 4 5 pi 3.14159265

-Ch s : Phn t hng i ct j ca ma trn c k hiu l A(i,j). Tuy nhin ta cng c th tham chiu ti phn t ca mng nh mt ch s A(k). V d: A(6) l tham chiu ca A(3,2). -Ton t : l mt ton t quan trng, xut hin nhiu dng khc nhau V d: >> 5:10 Trang 2

Bo co n TVT1

GVHD : Bi Minh Thnh

ans = 5 6 7 8 9 10

>> 1:2:10 ans= 1 3 5 7 9

A(:,j) trch ra ct th j ca A A(i,:) trch ra hng th i A(k:l,m:n) trch ra ma trn con ca A V(i:j) trch ra mt phn vector V V d: >> A=[2 4 6; 1 3 5; 3 1 4]; >> A(3,:) ans = 3 1 4

-Chuyn v: Dng du to ma trn chuyn v V d: >>a=[1 3; 2 4] a= 1 2 3 4

>> a ans = 1 3 2 4

-Php ton s hc vi ma trn: Cng, tr ma trn: >> a=[2 3]; Trang 3

Bo co n TVT1

GVHD : Bi Minh Thnh

>> b=[1 2]; >> a+b ans = 3 5

Nhn hai ma trn: >> a*b ans = 8 >> a.*b ans = 2 6

Chia cc thnh phn ca ma trn ny cho mt ma trn khc: >> a./b ans = 2.0000 1.5000 Ly tha ca ma trn: >> a.^2 ans = 4 9

>> c=[1 2; 3 4]; >> c^2 ans = 7 10 15 22

-Ma trn c bit: zeros(m,n): ma trn ton 0 eye(n):ma trn n v Trang 4

Bo co n TVT1

GVHD : Bi Minh Thnh

ones(m,n): Ma trn ton 1 4) Lp trnh trong matlab: 4.1) Biu thc iu kin: Gn ging trong C -If, else , elseif. -switch( ch thc thi duy nht mt nhm lnh) 4.2) Vng lp: -for, while. 5)Hm m-file: Hm m-file l mt chng trnh con do chng ta yu cu cc i s ng vo v c th tr v i s ng ra C php: function[outputArgs]=function_name(inputArgs) -Ch thch(t sau du %, ch thch s hin ra khi dng lnh help) -Cc lnh. -return; Phi lu li vi tn gi ng tn hm. V d:V hm sau trong kho ng [-10,10] Gii: function f = function1(x) y = 1./((x-0.3).^2+0.01)+1./((x-0.9).^2+0.04)-6 ; Lu li vi tn function1.m >>fplot(function1,[-10,10]); 6)V hnh trong Matlab: -Matlab cung cp nhiu hm biu din th 2D v 3D. plot: v th 2D plot3: v th 3D Trang 5

Bo co n TVT1

GVHD : Bi Minh Thnh

loglog: v th cc trc l logarit semilogx, semilogy: v th vi 1 trc l logarit -S dng hm figure to nhiu ca s hnh v -S dng lnh subplot v nhiu hnh trn mt ca s -Hm ch thch hnh v: title: Nhn hnh v xlabel, ylabel,zlabel: nhn cc trc. legend: thm ch thch vo hnh v V d: x = -pi:.1:pi; y = sin(x); >>plot(x,y) xlabel('t = 0 to 2\pi','Fontsize',16) ylabel('sin(t)','Fontsize',16) title('\it{Gia tri cua sin tu zero den 2 pi}','Fontsize',16)

II) Matlab GUI:


1) Gii thiu: Gui-l giao din bng hnh nh ca chng trnh Gui-bao gm cc nt nhn, hp lit k, thanh trt, menu chng cung cp cho ngi dng s dng mt mi trng lm vic thn thin h tp trung vo cc ng dng ca chng trnh hn l i tm hiu cch thc lm vic ca chng trnh .

Trang 6

Bo co n TVT1

GVHD : Bi Minh Thnh

m cng c to Gui : File New GUI Khi lu giao din va to, Matlab s to ra hai file c cng tn nhng khc phn m rng: - File c phn m rng .fig cha n i dung ca giao din - File c phn m rng .m cha nhng on m lin quan n giao din

Trang 7

Bo co n TVT1

GVHD : Bi Minh Thnh

Trang 8

Bo co n TVT1

GVHD : Bi Minh Thnh

Khi thit k bt c thnh phn no ca Gui ta cn thit lp thuc tnh cho thnh phn . thit lp cc thuc tnh ta c th chn mc Property Inspector trn thanh cng c hoc right-click vo i tng v chn mc Inspector Properties Hai thuc tnh quan trng m ta cn xc lp l String Property v Tag Property. - String property : dng k t xut hin trn i tng. - Tag property : tn ca i tng. Khi click chut vo 1 i tng, Matlab s gi hm tng ng vi i tng . Tn ca hm chnh l tn ca i tng cng vi _Callback

2) Cc hm thng c s dng trong Gui: Set : Thay i gi tr ca cc thuc tnh ca mt i tng giao din set(handles.TextBox,String,str) Get : Truy xut gi tr ca thuc tnh ca mt i tng giao din get(handles.EditBox,String) Ngoi ra cn c cc hm nh axes, guide, num2str(), str2num()

Trang 9

Bo co n TVT1

GVHD : Bi Minh Thnh

CHNG II: C BN V NH V CC HM X L NH C BN TRONG MATLAB


I) Cc kiu nh trong Matlab:
1) nh Index: nh c biu din bi hai ma trn, mt ma trn d liu nh X v mt ma trn mu (cn gi l bn mu) map. Ma trn d liu c th thuc kiu uint8, uint16 hoc double. Ma trn mu l mt ma trn kich thc m x 3 gm cc thnh phn thuc kiu double c gi tr trong khong [0 1]. Mi hng ca ma trn xc nh thnh phn red, green, blue ca mt mu trong tng s m mu c s dng trong nh. Gi tr ca mt phn t trong ma trn d liu nh cho bit mu ca im nh nm hng no trong ma trn mu.

Trang 10

Bo co n TVT1

GVHD : Bi Minh Thnh

2) nh grayscale: Mi nh c biu din bi mt ma trn hai chiu, trong gi tr ca mi phn t cho bit sang (hay mc xm) ca im nh . Ma trn ny c th mt trong cc kiu uint8, uint16 hoc double. nh biu din theo kiu ny cn gi l nh trng en.

3) nh nh phn: nh c biu din bi mt ma trn hai chiu thuc kiu logical. Mi im nh ch c th nhn mt trong hai gi tr l 0 (en) hoc 1 (trng)

Trang 11

Bo co n TVT1

GVHD : Bi Minh Thnh

4) nh RGB: Cn gi l nh truecolor do tnh trung thc ca n. nh ny c biu din bi mt ma trn ba chiu kch thc m x n x 3, vi m x n l kch thc nh theo pixels. Ma trn ny nh ngha cc thnh phn mu red, green, blue cho mi im nh, cc phn t ca n c th thuc kiu uint8, uint16 hoc double.

Trang 12

Bo co n TVT1

GVHD : Bi Minh Thnh

II) Cc php bin i nh:


1) Bin i Fourier: Php bin i Fourier biu din nh di dng tng ca cc ly tha phc ca cc thnh phn bin , tn s, pha khc nhau ca nh. Nu f(m,n) l mt hm ca hai bin khng gian ri rc m v n, th bin i Fourier hai chiu ca f(m,n) c nh ngha :

F (w1,w2)=

f (m, n)e

jmw1

jnw 2

m n Nu f(m,n) biu din sng ca nh X v tr pixel (m,n) th F(w1,w2) chnh l bin i Fourier ca nh X. Do cc d liu trn my tnh c lu tr di dng ri rc, c th l d liu nh c t chc theo n v pixel nn php bin i Fourier cng c ri rc ha thnh bin i Fourier ri rc (DFT). Gi s hm f(m,n) ch khc 0 trong min (0<=m<=M -1,0<=n<=N-1), cc php bin i DFT thun v nghch kch thc M x N c nh ngha nh sau :
M 1N 1

F ( p,q) =
m 0n 0

f (m, n)e

j (2 / M ) pm

j (2 / N ) qn

(0<=p<=M-1,0<=q<=N-1) Trang 13

Bo co n TVT1

GVHD : Bi Minh Thnh

M 1N 1

f (m,n) =
p 0q 0

F ( p, q)e j (2

/ M ) pm

e j (2

/ N ) qn

(0<=m<=M-1,0<=n<=N-1)

F(p,q) gi l cc h s ca bin i DFT. Vi cc ng dng trong x l nh, chng ta ch quan tm n cc hm fft2 v ifft2. C php : F=fft2(X,Mrows,Ncols) f=ifft2(F,mrows,ncols) Nu nh ban u c kch thc nh hn th Matlab t ng thm vo cc zero pixel trc khi bin i. Sau khi thc hin bin i DFT bng fft2, thnh phn DC s nm gc trn bn tri ca nh. Ta c th dng hm fftshift dch thnh phn DC ny v trung tm ca nh. 2) Php bin i DCT: Bin i DCT (Discrete Cosine Transform) biu din nh di dng tng ca cc cosine ca cc thnh phn bin v tn s khc nhau ca nh. Hu ht cc thng tin v nh ch tp trung trong mt vi h s ca bin i DCT, trong khi cc h s cn li cha rt t thng tin. Bin i DCT 2 chiu ca mt ma trn A kch thc M x N l:
M 1N 1

Bpq =

p q p 0q 0
M 1N 1

Am cos

(2m 1) p (2n 1)q cos 2M 2N


(2m 1) p (2n 1)q cos 2M 2N

vi 0<=p<=M-1 0<=q<=N-1

A mn =
p 0q 0

p q

Bpq cos

vi 0<=m<=M-1

0<=n<=N-1 Php bin i DCT thun v nghch c thc hin bng cc hm dtc2 v idtc2. Cc hm ny s dng gii thut da theo FFT tng tc tnh ton. C php : B=dtc2(A,M,N) A=idtc2(B,M,N) 3) Bin i Radon: Php bin i Radon c thc hin bi hm radon trong Matlab, biu din nh di dng cc hnh chiu ca n dc theo cc hng xc nh. Hnh chiu ca mt hm hai bin f(x,y) l tp hp cc tch phn ng. Hm radon tnh cc tch phn ng t nhiu im ngun dc theo cc ng dn song song, gi l cc tia chiu, theo mt hng xc nh no . Cc tia chiu ny nm cch nhau 1 pixel. biu din ton b nh, hm radon s ly nhiu hnh chiu song song ca nh t cc gc quay khc nhau bng cch xoay cc im ngun quanh tm ca nh.

Trang 14

Bo co n TVT1

GVHD : Bi Minh Thnh

Bin i Radon ca f(x,y) tng ng vi gc quay trc y :

l tch phn ng ca f dc theo

Trong Matlab, bin i Radon c tnh bng hm Radon c c php nh sau : [R,Xp] = radon(I,theta)

Trang 15

Bo co n TVT1

GVHD : Bi Minh Thnh

Php bin i Radon vi nhiu gc thng c hin th di dng nh.

Trang 16

Bo co n TVT1

GVHD : Bi Minh Thnh

III) Cc hm x l c bn:
1) c v ghi d liu nh: Hm imread c cc file nh vi bt k cc nh dng nh bit hin nay v lu li di dng mt ma trn biu din nh trong Matlab. C php : A= imread(filename,fmt) Hm imwrite cho php lu mt nh biu din bng mt ma trn trong Matlab thnh mt file nh di mt trong cc nh dng bit. C php : imwrite(A,filename,fmt) Hm imfinfo dng xem cc thng s ca mt file nh no . C php : imfinfo(filename,fmt) Cc thng tin c cung cp bi hm imfinfo l : filename, filemoddate, filesize, format, formatversion, width, height, bitdepth, colortype. 2) Chuyn i gia cc kiu d liu, kiu nh: 2.1)Chuyn i gia cc kiu d liu nh: Matlab cung cp sn cc hm thc hin chuyn kiu cho cc ma trn biu din nh, bao gm : im2double, im2uint8 v im2uint16. Tuy nhin, khi thc hin chuyn kiu gia cc d liu nh cn lu mt s iu sau: Khi chuyn t mt kiu d liu dng nhiu bit sang mt kiu d liu dng it bit hn th mt s thng tin chi tit v bc nh ban u s b mt. Khng phi lc no cng c th chuyn i kiu d liu i vi kiu nh indexed, v cc gi tr ca ma trn nh xc nh mt a ch trong bn mu ch khng phi l gi tr mu, do khng th lng t ha c. 2.2) Chuyn i gia cc kiu nh: Dither : dither(RGB,map) dither(I) Gray2ind : [X,Map] = gray2ind(I,N) [X,Map] = gray2ind(BW,N) Grayslice : x=grayslice(I,N) x=grayslice(I,V) Im2bw : bw=im2bw(I,level) bw=im2bw(x,map,level) bw=im2bw(rgb,level) Ind2gray : i=ind2gray(x,map) Ind2rgb : rgb=ind2rgb(x,map) Mat2gray : i=mat2gray(a,[amin amax]) Rgb2gray : i=rgb2gray(rgb) Rgb2ind : [x, map]=rgb2ind(rgb,n) Trang 17

Bo co n TVT1

GVHD : Bi Minh Thnh

x=rgb2ind(rgb,map) [x,map]=rgb2ind(rgb,tol) 3)Cc php ton s hc c bn i vi d liu nh: Cc php ton s hc c bn trn cc d liu nh bao gm cc php cng, tr, nhn v chia. Tuy nhin, Matlab ch h tr cc php ton ny trn kiu double nn cn thc hin chuyn i kiu trc khi thc hin. gim bt thao tc ny, trong IPT c cung cp cc hm thc hin cc php ton s hc trn nh m c th chp nhn bt k kiu d liu nh no v tr v kt qu thuc cng kiu vi cc ton hng. Cc hm ny cng x l cc d liu trn mt cch t ng. Imabsdiff : z=imabsdiff(x,y) Imadd : z=imadd(x,y,out_class) Imcomplement : im2=imcomplement(im) Imdivide : z=imdivide(x,y) Imlincomb : z=imlincomb(k1,a1,k2,a2,,kn,an,k,out_class) Immultiply : z=immultiply(x,y) Imsubstract : z=imsubstract(x,y)

4) Cc hm hin th nh trong Matlab: Matlab cung cp hai hm hin th c bn l image v imagesc. Ngoi ra trong IPT cng c hai hm hin th nh khc, l imview v imshow. Hm image(X,Y,C) hin th hnh nh biu din bi ma trn C kch thc M x N ln trc ta hin hnh. X, Y l cc vector xc nh v tr cc pixel C(1,1) v C(M,N) trong h trc hin hnh. Hm imagesc c chc nng tng t nh hm image, ngoi tr vic d liu nh s c co gin s dng ton b bn mu hin hnh. Hm imview cho php hin th hnh nh trn mt ca s ring, nn Java, gi l image Viewer. Image Viewer cung cp cc cng c d tm v xc nh cc gi tr pixel mt cch linh hot. Hm imshow cng to mt i tng ha thuc loi image v hin th nh trn mt figure. Hm imshow s t ng thit lp cc gi tr ca cc i tng image, axes v figure th hin hnh nh. 5) Cc php bin i hnh hc: 5.1) Php ni suy nh: Ni suy l qu trnh c lng gi tr ca mt im nm gia hai pixel c gi tr bit. IPT cung cp 3 phng php ni suy nh : ni suy theo cc ln cn gn nht, ni suy song tuyn tnh v ni suy bicubic. C 3 phng php u thc hin theo nguyn tc chung : Trang 18

Bo co n TVT1

GVHD : Bi Minh Thnh

xc nh gi tr ca mt pixel nh ni suy, ta tm mt im trong nh ban u tng ng vi pixel , sau gi tr ca pixel nh mi s c tnh bng trung bnh c trng s ca mt tp cc pixel no ln cn ca im va xc nh, trong trng s ca cc pixel ph thuc vo khong cch ti im ny. Phng php ln cn gn nht (nearest neighbor) : pixel mi s c gn gi tr ca pixel cha im tng ng ca n trong nh ban u Phng php song tuyn tnh (bilinear interpolation) : pixel mi s c gn l trung bnh c trng s ca cc pixel trong mt ln cn kch thc 2 x 2. Phng php bicubic, pixel mi s c gn l trung bnh c trng s ca cc pixel trong mt ln cn kch thc 4 x 4. 5.2) Thay i kch thc nh: Hm imresize cho php ngi s dng thay i kch thc nh. Ngoi kch thc nh mi, ngi s dng cn c th xc nh phng php ni suy s dng v loi b lc dng chng aliasing. C php : b=imresize(a,m, method) :to nh gp m ln nh a. b=imresize(a,[mrows mcols],method) b=imresize(a,[mrows mcols],method,N) b=imresize(a,[mrows mcols],method,h) 5.3) Php quay nh: thc hin php quay nh, ta c th s dng hm imrotate. Ngoi hai thng s c bn l nh gc v gc quay, ngi s dng cng c th xc nh phng php ni suy s dng v kch thc ca nh mi. C php : b=imrotate(a,angle,method,Bbox) 5.4) Trch xut nh: Khi cn trch xut mt phn nh gc, ta dng hm imcrop. Xc nh c th v tr ca phn nh cn trch xut (di dng hnh ch nht) C php : x2=imcrop(x,map,rect) % indexed x2=imcrop(a,rect) % grayscale or RGB trong rect=[Xmin Ymin width height] S dng mouse chn phn nh cn trch xut. Ta khng cn cung cp thng s rect, khi thc hin hm ny, con tr s chuyn sang dng ch thp, ngi dng s ko chut chn phn nh cn trch xut sau th chut.

Trang 19

You might also like