




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
MATLAB程式設(shè)計(jì)入門篇
影像顯示與讀寫張智星(jang@)jang@/jang清大資工系多媒體檢索實(shí)驗(yàn)室19-1MATLAB的影像格式MATLAB最常處理的影像格式為索引影像(IndexedImages)顯示此類型影像的語(yǔ)法如下:
image(X) colormap(map)
其中X為影像的資料矩陣,map為色盤矩陣。色盤矩陣的大小為K×3,每個(gè)橫列由三個(gè)元素所組成,分別是R(紅)
、G(綠)、B(藍(lán))
,每個(gè)元素的範(fàn)圍為0~1X的值為1~K,也就是當(dāng)X(i,j)的值為p,則像素點(diǎn)(i,j)的顏色為map(p,:)這一列的值所決定。顯示索引影像範(fàn)例一在下例中,我們使用MATLAB顯示內(nèi)建的小丑圖。範(fàn)例19-1:image01.m
loadclown.mat %
載入小丑影像資料,含變數(shù)X和mapimage(X); %顯示影像colormap(map) %取用色盤矩陣顯示索引影像範(fàn)例一欲顯示對(duì)應(yīng)的色盤,可再執(zhí)行colorbar,結(jié)果如下:顯示索引影像範(fàn)例二由於由X是索引影像,因此其最小值是1,最大值會(huì)等於map的列數(shù)(即「可顯示之顏色數(shù)目」),可驗(yàn)証如下:範(fàn)例19-2:image02.mloadclown.mat %
載入小丑影像資料,含變數(shù)X和mapfprintf('min(min(X))=%d\n',min(min(X)));fprintf('max(max(X))=%d\n',max(max(X)));fprintf('size(map,1)=%d\n',size(map,1));顯示索引影像範(fàn)例二
min(min(X))=1 max(max(X))=81 size(map,1)=81
由範(fàn)例可知,此小丑影像共含有81種不同的顏色。顯示索引影像範(fàn)例三要正確地顯示索引影像則需要正確的色盤,以上面的小丑影像為例,如果使用亂數(shù)產(chǎn)生的色盤則會(huì)產(chǎn)生下面的結(jié)果:範(fàn)例19-3:image03.mloadclown.mat %載入小丑影像資料,含變數(shù)X和mapnewmap=rand(size(map));image(X);colormap(newmap);colorbar;顯示索引影像範(fàn)例三由於色盤是亂數(shù)產(chǎn)生,所以每次結(jié)果都不一樣:顯示索引影像範(fàn)例四如果我們的色盤矩陣只有K個(gè)橫列,但是X的某些元素值小於1或大於K,則我們可以使用imagesc指令將X的最小值轉(zhuǎn)換成1,最大值轉(zhuǎn)成K,其他中間值則依線性關(guān)係轉(zhuǎn)換成介於1與K的值,舉例如下:
範(fàn)例19-4:imagesc01.m:X=peaks;imagesc(X);colormap(gray);colorbar;min(min(X)) %顯示X的最小值max(max(X)) %顯示X的最大值顯示索引影像範(fàn)例四ans=-6.5466ans=8.0752具有上述特性的影像資料稱為強(qiáng)度影像(IntensityImages),一般經(jīng)由數(shù)值運(yùn)算產(chǎn)生的矩陣均屬此類,因此均可由imagesc來(lái)顯示。
顯示索引影像範(fàn)例五image指令亦接受全彩影像(TruecolorImages)。全彩影像可以表示成一個(gè)m×n×3的矩陣X,其中X(:,:,1)代表紅色的強(qiáng)度。X(:,:,2)代表綠色的強(qiáng)度,X(:,:,3)則代表藍(lán)色的強(qiáng)度。X的值的範(fàn)圍可以是下列兩種:介於0~1的浮點(diǎn)數(shù)或是0~255的uint8(詳見本章第三節(jié))。範(fàn)例19-5:image04.mX=imread('annie19980405.jpg');image(X);size(X)顯示索引影像範(fàn)例五ans=4806403此時(shí)若再下達(dá)colorbar指令,只會(huì)顯示內(nèi)定的色盤,和圖形顯示沒(méi)有關(guān)係。19-2影像的顯示與列印MATLAB在顯示影像時(shí),會(huì)將之置於預(yù)設(shè)的圖軸之中,並以此圖軸的長(zhǎng)寬比來(lái)成像,因而造成影像的失真。若要以影像本身的長(zhǎng)寬比來(lái)成像,可加入axisimage,如下:範(fàn)例19-6:image05.mloadmandrill.matimage(X);colormap(map);axisimage以原影像長(zhǎng)寬比例顯示範(fàn)例亦可下達(dá)「axisnormal」來(lái)觀看MATLAB的預(yù)設(shè)顯示結(jié)果。將影像對(duì)應(yīng)到螢?zāi)簧系狞c(diǎn)的範(fàn)例若要使影像資料的每一點(diǎn)對(duì)應(yīng)至螢?zāi)簧系囊粋€(gè)像素(Pixel),可輸入如下:範(fàn)例19-7:image06.mloadmandrill.mat[m,n]=size(X);figure('unit','pixel','position',[200,200,n,m]);image(X);colormap(map);set(gca,'position',[0,0,1,1]);範(fàn)例:將影像對(duì)應(yīng)到螢?zāi)簧系狞c(diǎn)此範(fàn)例產(chǎn)生圖形如同前一個(gè)範(fàn)例,如果你的螢?zāi)唤馕龆容^低,圖形會(huì)變大。上述範(fàn)例程式碼中,figure的‘position’性質(zhì)為[200,200,n,m],代表視窗的左下角位置是[200,200](以pixel為單位),而視窗的寬度為n,高度為m,正好可以符合影像的大小。gca傳回使用中的圖軸,最後一個(gè)敘述將圖軸的位置設(shè)為整個(gè)視窗的大小,使用了正規(guī)化的單位。19-2影像的顯示與列印在列印影像時(shí),MATLAB會(huì)根據(jù)視窗的Paperposition性質(zhì)來(lái)調(diào)整圖形的長(zhǎng)寬比,使得印出的影像再度變形。欲防止情況,可用下列指令:
>>set(gcf,'PaperPositionMode','auto')
若要使PaperPositionMode的預(yù)設(shè)值就是“auto”,可在startup.m檔案中加入下一行:
set(0,'DefaultFigurePaperPositionMode','auto')19-38-bit影像在MATLAB第5版之後,提供了uint8的資料型態(tài)。由於uint8只有8個(gè)位元,所以能表示的數(shù)值範(fàn)圍為0至255(=2^8-1)之間的整數(shù)。8-bit影像範(fàn)例由於8-bit影像資料的最小值為0,和一般的雙精準(zhǔn)索引影像資料相差1,因此在兩種資料相互轉(zhuǎn)換時(shí),要特別小心。例如:範(fàn)例19-8:uint801.mloadclown.matZ8=uint8(X-1); %將X-1轉(zhuǎn)成uint8的資料型態(tài)
closeall %關(guān)掉所有的圖形視窗
image(Z8);colormap(map);colorbar;8-bit影像範(fàn)例19-38-bit影像若要將8-bit影像轉(zhuǎn)回雙精準(zhǔn)影像,可輸入如下:
>>Z64=double(Z8)+1;
uint8資料型態(tài)亦可用於全彩影像資料,此時(shí)每一像素的原色(R,G或B)範(fàn)圍為0至255間的整數(shù),而不再是0至1的實(shí)數(shù)。19-38-bit影像欲將雙精準(zhǔn)的全彩影像轉(zhuǎn)作uint8資料型態(tài),可輸入如下:
>>RGB8=uint8(round(RGB64*255));其中RGB64為雙精準(zhǔn)的全彩影像資料,而RGB8則是unit8的8-bit影像資料。反之,若欲進(jìn)行反轉(zhuǎn)換,可輸入如下:
>>RGB64=double(RGB8)/255;
關(guān)於影像類別及其資料型態(tài)的關(guān)係,可見下表:影像類別及型態(tài)關(guān)係表資料型態(tài)影像類別雙精準(zhǔn)(Double)uint8索引影像(IndexedImages)影像矩陣大小:m×n影像矩陣大?。簃×n影像資料範(fàn)圍:介於[1,k]的整數(shù)影像資料範(fàn)圍:介於[0,k-1]的整數(shù)色盤矩陣大小:k×3色盤矩陣大?。簁×3色盤資料範(fàn)圍:介於[0,1]的實(shí)數(shù)色盤資料範(fàn)圍:介於[0,1]的實(shí)數(shù)影像顯示指令:image影像顯示指令:image(註:k的值不大於256)強(qiáng)度影像(IntensityImages)影像矩陣大小:m×n影像矩陣大小:m×n影像資料範(fàn)圍:任意實(shí)數(shù)(但通常是[0,1])影像資料範(fàn)圍:介於[0,255]的整數(shù)色盤矩陣大小:k×3色盤矩陣大?。簁×3色盤資料範(fàn)圍:介於[0,1]的實(shí)數(shù)色盤資料範(fàn)圍:介於[0,1]的實(shí)數(shù)影像顯示指令:imagesc(色盤通常是灰階)影像顯示指令:imagesc(色盤通常是灰階)全彩影像(TruecolorImages)影像矩陣大小:m×n×3影像矩陣大小:m×n×3影像資料範(fàn)圍:介於[0,1]的實(shí)數(shù)影像資料範(fàn)圍:介於[0,255]的整數(shù)影像顯示指令:image影像顯示指令:image19-4影像檔案的讀取與寫入imread指令可用於讀取影像檔案。imwrite則可用於寫入影像檔案。這兩個(gè)指令可以處理的影像格式有下列幾種:imread及imwrite支援的格式影像檔案格式副檔名相關(guān)字串微軟視窗的Bitmapbmp‘bmp’階層式資料格式(HierarchicalDataFormat)hdf‘hdf’JointPhotographicExpertGroupjpg或jpeg‘jpg’或‘jpeg’微軟視窗的Paintbrushpcx‘pcx’可攜式網(wǎng)路圖形(PortableNetworkGraphics)png‘png’標(biāo)記式影像檔案格式(TaggedImageFileFormat)tiff‘tif’或‘tiff’X視窗傾?。╔WindowsDump)xwd‘xwd’圖形交換格式(GraphicInterchangeFormat)(第六版才支援)gif‘gif’19-4影像檔案的讀取與寫入imread指令可以讀取上述格式的影像檔案,並進(jìn)行必要之轉(zhuǎn)換,如下:對(duì)於強(qiáng)度影像,imread將資料以u(píng)int8的矩陣(大小為m×n)傳回。對(duì)於索引影像,imread將資料以u(píng)int8的矩陣(大小為m×n)傳回,並同時(shí)傳回一個(gè)雙精準(zhǔn)的色盤矩陣,其每個(gè)元素值介於[0,1]。對(duì)於全彩矩陣,imread將資料以u(píng)int8的矩陣(大小為m×n×3)傳回。使用imread讀取全彩jpeg影像imread可讀出下列全彩影像:範(fàn)例19-9:imread01.mRGB=imread('simulinkteam.jpg');image(RGB);class(RGB)使用imread讀取索引影像imread可讀出下列索引影像:imread02.m[X,map]=imread('sbtree.gif');image(X);colormap(map);colorbar;影像檔案寫入範(fàn)例imwrite指令可將資料寫成影像檔如下:範(fàn)例19-10:imwrite01.m上述最後一列敘述將會(huì)呼叫Windows作業(yè)系統(tǒng)下的應(yīng)用程式來(lái)開啟myClown.jpg檔案。loadclown.matimwrite(X,map,'myClown.jpg');!startmyClown.jpgImfinfo指令imfinfo指令可傳回影像檔案的各項(xiàng)資訊,例如:info1=imfinfo('simulinkteam.jpg')info2=imfinfo('sbtree.gif')對(duì)於不同的檔案格式,imfinfo傳回的資訊項(xiàng)目可能有所不同。imfinfo執(zhí)行結(jié)果info1=imfinfo(‘simulinkteam.jpg')info1=Filename:'simulinkteam.jpg'FileModDate:'28-三月-200017:30:36'FileSize:24071Format:'jpg'FormatVersion:''Width:234Height:126BitDepth:24Co
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 配送在物流中的作用
- 中醫(yī)護(hù)理學(xué)(第5版)課件 第九章針灸療法與護(hù)理3十四經(jīng)脈及其常用腧穴
- 交通運(yùn)輸行業(yè)智能交通與船舶導(dǎo)航方案
- 科技項(xiàng)目研究可行性研究報(bào)告
- 家庭智能家居控制系統(tǒng)的
- 股份制改革流程及關(guān)鍵文書編寫指南
- 家庭園藝種植技術(shù)手冊(cè)
- 項(xiàng)目申請(qǐng)書和可行性研究報(bào)告的關(guān)系
- 工廠項(xiàng)目可行性報(bào)告
- 企業(yè)人力資源管理師(三級(jí))實(shí)操練習(xí)試題及答案
- 加強(qiáng)溝通協(xié)調(diào):制定溝通協(xié)調(diào)工作方案
- 中西醫(yī)結(jié)合規(guī)范化癌痛全程管理 癌痛的中西醫(yī)結(jié)合規(guī)范化治療(一)課件
- 新產(chǎn)品開發(fā)流程圖
- 儲(chǔ)氣罐日常點(diǎn)檢記錄表
- 安 全 旁 站 監(jiān) 理 記 錄 表
- 村衛(wèi)生室醫(yī)療質(zhì)量督導(dǎo)檢查匯總表
- 電子商務(wù)專升本考試(習(xí)題卷12)
- 小學(xué)部編五下快樂(lè)讀書吧整本書閱讀-《西游記》閱讀指導(dǎo)課教學(xué)設(shè)計(jì)
- 高中英語(yǔ)-what's in a name教學(xué)課件設(shè)計(jì)
- 德能勤績(jī)考核評(píng)價(jià)表
- 新譯林牛津版英語(yǔ)八年級(jí)上冊(cè)Unit1-Friends復(fù)習(xí)優(yōu)質(zhì)課公開課課件
評(píng)論
0/150
提交評(píng)論