You are on page 1of 14

Cc kiu nh trong Matlab

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 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 bt k bn mu no. 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 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. 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. c) 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 hoc tt (on hoc off). Mt nh nh phn c lu tr nh mt mng logic ca 0 v 1. 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 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 bits trong R, G, B chim tng ng 8 bit 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).

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. 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 X caption map Size 200x320 2x1 81x3 Bytes 512000 4 1944 Class double array char array 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 ); - 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'); 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 ans =1 Ch : Khi ghi 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 bit, hm imwrite to mt file nh 1 bit. Nu nh dng nh ra c ch r l khng tr gip nh 1 bit (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 bit, hm imwrite to mt nh 8 bit + 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. Chiu cao nh tnh theo pixel. S lng bt trn mt pixel. Kiu nh: RGB, ch s
b) Hin th nh 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.

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. Chng 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. 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 chuyn i mt nh t dng ny sang dng khc, nh kt qu c th khc nh ban u. Chng 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:

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

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.

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 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 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 : 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 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 . b) 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 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. c) 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.

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:

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]) Ch : 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 nearest bilinear biculic Phng php ni suy Ni suy cc phixel gn nht ( mc nh ) Ni suy song tuyn tnh 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 B B B B

= = = = =

imresize(A,m) imresize(A,m,method) imresize(A,[mrows ncols],method) imresize(...,method,n) 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)

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. Cc pixel nm ngoi bin ca nh gc c gn gi tr 0 nh th nn mu en trong nh ra. Nu ta ch ra chui crop nh mt tham s, hm imrotate s xn nh ra ti kch thc nh nh vo.

Hm imrotate C php ca n nh sau: B = imrotate(A,angle) B = imrotate(A,angle,method) B = imrotate(A,angle,method,bbox)

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

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

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:

o o
nh cn bin i Mt cu trc bin i c gi l TFORM ch ra kiu bin i ta mun thc hin

o o

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: + 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)

Hnh 6 nh trc v sau khi imtransforms - 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 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,...): Ch ra cc tham s iu khin nhiu kha cnh khc nhau ca bin i khng gian. Bng sau lit k cc tham s m ta c th ch ra.

Tham s
UData VData

Din gii
C hai tham s ny l cc vector hai phn t 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 Ydata

C hai tham s ny l cc vector hai phn t 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 vector 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.

Size

Mt vector hai phn t nguyn khng m. Size ch ra s hng v ct trong nh ra B. Vi chiu cao hn, kch c ca B c ly trc tip t A. Ni cch khc, size(B,k) tng ng vi size(A,k) vi k>2. Nu Size khng c ch nh, n s c tnh t Xdata,Ydata v XYScale

FillValues

Mt mng cha mt hoc nhiu gi tr t (fill values). Fill values c s dng cho cc pixel trn nh ra khi v tr c bin i tng ng trn nh vo hon ton l vin ngoi ca nh ra. nu A l 2 chiu, Fillvalues phi v hng. Tuy nhin, nu chiu ca A ln hn 2, FillValues c th l mt mng m kch thc ca n tho mn rng buc sau: size(fill_values,k) phi bng size(A,k+2) hoc 1. Chng hn, nu A l mt nh RGB unit8 c kch thc 200x200x3 th cc kh nng ca FillValues bao gm:

0: T vi mu en [0;0;0]: T vi mu en 255: T vi mu trng [255;255;255]: T vi mu trng [0;0;255]: T vi mu xanh [255;255;0]: T vi mu vng Nu A l 4 chiu 200x200x3x10 th FillValues c th l 1 v hng 1x10,3x1,3x1

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

You might also like