Top Banner

of 17

Các Câu Lệnh Xử Lý Ảnh Trong Matlab

Oct 12, 2015

Download

Documents

ThaoNguyen
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

Cc kiu nh trong Matlaba) 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 nhphn 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 Matlaba) 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 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 ); - 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 PNGbitmap = 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) /2Ta 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 nhBin 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 ngAliasing :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 nhBicubic 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 cnGeometric 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 nhInterpolation :Qu trnh c s dng c lng gi tr nh mt v tr gia cc pixelNearest-neighbor interpolation :Cc gi tr pixel ra c gn gi tr ca pixel nm trong mt vng gn pixel .b) Ni suyNi 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 vphng 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 hnVi nh RGB, ni suy thng c thc hin trn mt phng R,B,G mt cch ring bitVi 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 imresizeI = 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 sPhng php ni suy

nearestNi suy cc phixel gn nht ( mc nh )

bilinearNi suy song tuyn tnh

biculicNi 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 imresizeC 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 lvi 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 ,bicubicV 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 raTheo 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 imrotateC 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 Aloose:( 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 ngange) 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. Chnghn, gi s rect l [20 20 40 30], s dng h to khng gian theo mc nh. Gctrn tri ca vng ch nht c chn l tm ca pixel (20,20) v gc di phi cavng ch nht l tm ca pixel (50,60). nh ra l mt nh c kch thc 31x41 chkhng phi 30x40. iu ny l do nh ra bao gm tt c cc pixel trong nh vohon ton hoc mt phn c bao bc bi vng ch nht trn.V dI = 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 trcf) 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:+ 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 phpB = 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 sDin gii

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

XdataYdataC 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

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

SizeMt 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

FillValuesMt 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 vngNu A l 4 chiu 200x200x3x10 th FillValues c th l 1 v hng 1x10,3x1,3x1

V dp 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