多媒體技術(shù)實驗實驗一_第1頁
多媒體技術(shù)實驗實驗一_第2頁
多媒體技術(shù)實驗實驗一_第3頁
多媒體技術(shù)實驗實驗一_第4頁
多媒體技術(shù)實驗實驗一_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

實驗一、彩色數(shù)字圖像基礎(chǔ)一、實驗?zāi)康氖炀氄莆誱atlab中常用的各種簡單命令;了解常用的圖像文件格式及bmp文件的結(jié)構(gòu);用matlab讀取圖像文件并顯示出來用matlab對圖像進行簡單變換二、基本原理講解 常用bmp文件結(jié)構(gòu)bmp文件大體上分成四個部分,如表1所示。表1Windows位圖文件結(jié)構(gòu)示意圖位圖文件頭BITMAPFILEHEADER位圖信息頭BITMAPINFOHEADER調(diào)色板Palette實際的位圖數(shù)據(jù)ImageDate第一部分為位圖文件頭BITMAPFILEHEADER,是一個結(jié)構(gòu),其定義如下:typedefstructtagBITMAPFILEHEADER{WORD

bfType;DWORDbfSize;WORD

bfReserved1;WORD

bfReserved2;DWORDbfOffBits;}BITMAPFILEHEADER;這個結(jié)構(gòu)的長度是固定的,為14個字節(jié)(WORD為無符號16位整數(shù),DWORD為無符號32位整數(shù)),各個域的說明如下:bfType指定文件類型,必須是0x424D,即字符串“BM”,也就是說所有.bmp文件的頭兩個字節(jié)都是“BM”。bfSize指定文件大小,包括這14個字節(jié)。bfReserved1,bfReserved2

為保留字,不用考慮bfOffBits為從文件頭到實際的位圖數(shù)據(jù)的偏移字節(jié)數(shù),即圖1中前三個部分的長度之和。第二部分為位圖信息頭BITMAPINFOHEADER,也是一個結(jié)構(gòu),其定義如下:typedefstructtagBITMAPINFOHEADER{DWORD

biSize;LONG

biWidth;LONG

biHeight;WORD

biPlanes;WORD

biBitCountDWORD

biCompression;DWORD

biSizeImage;LONG

biXPelsPerMeter;LONG

biYPelsPerMeter;DWORD

biClrUsed;DWORD

biClrImportant;}BITMAPINFOHEADER;這個結(jié)構(gòu)的長度是固定的,為40個字節(jié)(LONG為32位整數(shù)),各個域的說明如下:biSize指定這個結(jié)構(gòu)的長度,為40。biWidth指定圖像的寬度,單位是像素。biHeight指定圖像的高度,單位是像素。biPlanes必須是1,不用考慮。biBitCount指定表示顏色時要用到的位數(shù),常用的值為1(黑白二色圖),4(16色圖),8(256色),24(真彩色圖)(新的.bmp格式支持32位色,這里就不做討論了)。biCompression指定位圖是否壓縮,有效的值為BI_RGB,BI_RLE8,BI_RLE4,BI_BITFIELDS(都是一些Windows定義好的常量)。要說明的是,Windows位圖可以采用RLE4,和RLE8的壓縮格式,但用的不多。我們今后所討論的只有第一種不壓縮的情況,即biCompression為BI_RGB的情況。biSizeImage指定實際的位圖數(shù)據(jù)占用的字節(jié)數(shù),其實也可以從以下的公式中計算出來:biSizeImage=biWidth’×biHeight要注意的是:上述公式中的biWidth’必須是4的整倍數(shù)(所以不是biWidth,而是biWidth’,表示大于或等于biWidth的,最接近4的整倍數(shù)。舉個例子,如果biWidth=240,則biWidth’=240;如果biWidth=241,biWidth’=244)。如果biCompression為BI_RGB,則該項可能為零biXPelsPerMeter指定目標設(shè)備的水平分辨率,單位是每米的像素個數(shù)。biYPelsPerMeter指定目標設(shè)備的垂直分辨率,單位同上。biClrUsed指定本圖像實際用到的顏色數(shù),如果該值為零,則用到的顏色數(shù)為2biBitCount。biClrImportant指定本圖像中重要的顏色數(shù),如果該值為零,則認為所有的顏色都是重要的。第三部分為調(diào)色板Palette,當然,這里是對那些需要調(diào)色板的位圖文件而言的。有些位圖,如真彩色圖,前面已經(jīng)講過,是不需要調(diào)色板的,BITMAPINFOHEADER后直接是位圖數(shù)據(jù)。調(diào)色板實際上是一個數(shù)組,共有biClrUsed個元素(如果該值為零,則有2biBitCount個元素)。數(shù)組中每個元素的類型是一個RGBQUAD結(jié)構(gòu),占4個字節(jié),其定義如下:typedefstructtagRGBQUAD{BYTE

rgbBlue;//該顏色的藍色分量BYTE

rgbGreen;//該顏色的綠色分量BYTE

rgbRed;//該顏色的紅色分量BYTE

rgbReserved;//保留值}RGBQUAD;第四部分就是實際的圖像數(shù)據(jù)了。對于用到調(diào)色板的位圖,圖像數(shù)據(jù)就是該像素顏在調(diào)色板中的索引值。對于真彩色圖,圖像數(shù)據(jù)就是實際的R、G、B值。下面針對2色、16色、256色位圖和真彩色位圖分別介紹。對于2色位圖,用1位就可以表示該像素的顏色(一般0表示黑,1表示白),所以一個字節(jié)可以表示8個像素。對于16色位圖,用4位可以表示一個像素的顏色,所以一個字節(jié)可以表示2個像素。對于256色位圖,一個字節(jié)剛好可以表示1個像素。對于真彩色圖,三個字節(jié)才能表示1個像素,哇,好費空間呀!沒辦法,誰叫你想讓圖的顏色顯得更亮麗呢,有得必有失嘛。要注意兩點:(1)每一行的字節(jié)數(shù)必須是4的整倍數(shù),如果不是,則需要補齊。這在前面介紹biSizeImage時已經(jīng)提到了。(2)一般來說,bmp文件的數(shù)據(jù)從下到上,從左到右的。也就是說,從文件中最先讀到的是圖像最下面一行的左邊第一個像素,然后是左邊第二個像素……接下來是倒數(shù)第二行左邊第一個像素,左邊第二個像素……依次類推,最后得到的是最上面一行的最右一個像素。以上是bmp文件的存儲結(jié)構(gòu),在matlab中我們只需要用imread()函數(shù)就可以讀取圖像文件,操作十分方便,調(diào)用該函數(shù)可以把圖像數(shù)據(jù)讀到矩陣中。三、實驗內(nèi)容調(diào)用imread()函數(shù)讀取圖像并顯示出來;調(diào)用rgb2gray()把圖像轉(zhuǎn)化成灰度圖像并顯示出來

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論