多媒體信息處理技術(shù)報告.doc_第1頁
多媒體信息處理技術(shù)報告.doc_第2頁
多媒體信息處理技術(shù)報告.doc_第3頁
多媒體信息處理技術(shù)報告.doc_第4頁
多媒體信息處理技術(shù)報告.doc_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1.BMP圖像的結(jié)構(gòu)與顯示BMP文件是Windows操作系統(tǒng)所推薦和支持的圖像文件格式,是一種將內(nèi)存或顯示器的圖像數(shù)據(jù)不經(jīng)過壓縮而直接按位存盤的文件格式,所以稱為位圖(bitmap)文件,因其文件擴展名為BMP,故稱為BMP文件格式,簡稱BMP文件。BMP圖像文件被分成4個部分:位圖文件頭(Bitmap File Header)、位圖信息頭(Bitmap Info Header)、顏色表(Color Map)和位圖數(shù)據(jù)(即圖像數(shù)據(jù),Data Bits或Data Body)。為了實現(xiàn)BMP圖像的各種處理(如顯示 ,平滑 ,銳化等),我們必須清楚BMP 圖像文件的組成 ,下面將詳細介紹一下BMP 圖像的文件格式。1.1 BMP圖像的文件格式BMP圖像文件由文件頭、文件信息頭、調(diào)色板和圖像數(shù)據(jù)組成。(1)文件頭 文件頭是一個結(jié)構(gòu) ,長度為 14 個字節(jié) ,各組成部分如下:WORD bfType / 2 個字節(jié)表示文件類型 ,其值為“BMDWORD bfSize / 4 個字節(jié)表示文件的大小。WORD bfReserved1 / 2 個字節(jié)保留 ,其值為 0。WORD bfReserved1 / 2 個字節(jié)保留 ,其值為 0。DWORD bfOffBits / 4 個字節(jié)表示第一個像素的偏移量由文件頭可以獲得該文件型、小及第一個像素的偏移地址。(2)文件信息頭文件信息頭也是一個結(jié)構(gòu)體,長度為40個字節(jié),各組成部分如下:DWORLD biSize / 4個字節(jié)存放文件信息頭的長度,其值為40。LONG biWidth / 4個字節(jié)存放位圖的寬度。LONG biHeight / 4個字節(jié)存放位圖的高度。WORD biplanes / 2個字節(jié)存放平面的數(shù)目,其值為1。WORD biBitcount /兩個字節(jié)存放每個像素所占的位數(shù),其值可以是1,4,8,24等。DWORD biCompression / 4個字節(jié)指定位圖是否壓縮,其值可以是常值BI_RGB,BI_RLE8,BI_RLE4等。如果沒有壓縮則為BI_RGB(即0)。DWORD biSizeImage / 4個字節(jié)表示位圖的實際大小。LONG biXPelsPerMeter / 4個字節(jié)指定目標設備的水平分辨率,通常不用將其設為0。LONG biYPelsPerMeter / 4個字節(jié)指定目標設備的垂直分辨率,通常不用將其設為0。DWORD biClrUsed / 4個字節(jié)指定圖像實際用到的顏色數(shù),若使用所有顏色則值為0。DWORD biClrImportant / 4個字節(jié)指定圖像中重要的顏色數(shù),若全部重要則值為0。由文件信息頭可以獲得有關位圖的詳細信息,位圖的實際大小并不等于biWidth和biHeight的乘積。因為在保存位圖時要求每一行的字數(shù)必須是4的整數(shù)倍,如果不是,則需要補齊。(3) 顏色表顏色表實際上是一個RGBQUAD結(jié)構(gòu)的數(shù)組,數(shù)組的長度由biClrUsed指定(如果該值為零,則由biBitCount指定,即2的biBitCount次冪個元素)。RGBQUAD結(jié)構(gòu)是一個結(jié)構(gòu)體類型,占4個字節(jié),其定義如下:BYTE rgbRed /紅色分量BYTE rgbGreen /綠色分量BYTE rgbBlue /藍色分量BYTE rgbReserved /保留位有些位圖需要顏色表;有些位圖(如真彩色圖)則不需要顏色表,顏色表的長度由BITMAPINFOHEADER結(jié)構(gòu)中biBitCount分量決定。對于biBitCount值為1的二值圖像,每像素占1bit,圖像中只有兩種(如黑白)顏色,顏色表也就有21=2個表項,整個顏色表的大小為2*sizeof(RGBQUAD)=2*4=8個字節(jié);對于biBitCount值為8的灰度圖像,每像素占8bit,圖像中有28=256種顏色,顏色表也就有256個表項,且每個表項的R、G、B分量相等,整個顏色表的大小為256*sizeof(RGBQUAD)=256*4=1024個字節(jié);而對于biBitCount=24的真彩色圖像,由于每像素3個字節(jié)中分別代表了R、G、B三分量的值,此時不需要顏色表,因此真彩色圖的BITMAPINFOHEADER結(jié)構(gòu)后面直接就是位圖數(shù)據(jù)。(4)位圖數(shù)據(jù) 緊跟在顏色表之后的是圖像數(shù)據(jù)字節(jié)陣列,即圖像數(shù)據(jù),記錄了圖像的每一個像素值。對于有顏色表的位圖,位圖數(shù)據(jù)就是該像素顏色在調(diào)色板中的索引值;對于真彩色圖,位圖數(shù)據(jù)就是實際的R、G、B值(三個分量的存儲順序是B、G、R)。相應地,對于2色圖象,用1位表示顏色,因此一個字節(jié)表示8個像素;對于16色圖象,用4位表示一個像素的顏色,一個字節(jié)表示2個像素;對于256色圖象,用8位表示一個像素的顏色,一個字節(jié)只表示1個像素。圖像的每一掃描行由表示圖像的像素的連素字節(jié)組成,每一行的字節(jié)數(shù)取決于圖像的顏色數(shù)目和用像素表示的圖像寬度。掃描行是由底向上存儲的,這就是說,陣列中的每一個字節(jié)表示位圖左下角的像素,而最后一個字節(jié)表示位圖右上角的像素。1.2 BMP圖象文件顯示在VC+的的應用程序中顯示圖像 ,通常有兩種方法。一種方法是在應用程序中加入固定的位圖,為該圖指定ID,使用靜態(tài)圖片控件或ActiveX控件來顯示圖象。另一種方法是使用位圖類Cbitmap,利用LoadImage函數(shù)動態(tài)地從系統(tǒng)盤的文件中載入位圖圖像 ,將載入的圖像句柄和Cbitmap類相關連。使用BitBlt函數(shù)把位圖拷貝到能夠顯示圖像的設備場境中。設備場境中包含有關于系統(tǒng)、應用程序和繪圖窗口的信息。我們還可以使用 StretchBlt 函數(shù)拷貝圖像 ,并調(diào)整圖像的大小 ,使之適合在特定的設備場境中顯示。各函數(shù)的用法如下所示:HBITMAP hbitmap;/*加載BMP文件,filename為BMP文件名*/Hbitmap=(HBITMAP):LoadImage(AfxGetInstanceHandle(),filename,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);/*Bitmap為Cbitmap類的一個對象,實現(xiàn)圖象句柄和類相關連*/Bitmap.Attach(hbitmap);/*拷貝位圖到屏幕*/BitBlt(10,10,width,height,&dc,0,0,SRCCOPY);/*拷貝圖象并調(diào)整顯示大小*/StrwtchBlt(10,10,Rwidth,Rheight,&dc,width,height,SRCCOPY);實際上,由BMP圖象文件格式可以很方便地從文件中讀出各部分信息,在獲得調(diào)色板和圖象數(shù)據(jù)后,利用SetDIBitsToDevice函數(shù)或StrechDIBits函數(shù)來顯示圖象或打印圖象。2顏色表的修改2.1 RGB模型RGB模式是基于自然界中3種基色光的混合原理,將R、G、B三種基色按照從0(黑)到255(白色)的亮度值在每個色階中分配,從而指定其色彩,當不同亮度的基色混合后共產(chǎn)生=16777216種顏色。在理想條件下,加色原理R+G=Y,R+B=M,G+B=C。當3種基色的亮度值相等時,產(chǎn)生灰色,當3種亮度值都是255時,產(chǎn)生純白色;而當所有亮度值都是0時,產(chǎn)生純黑色。當3種色光混合生成的顏色一般比原來的顏色亮度值高,所以RGB模式產(chǎn)生顏色的方法又被稱為加色混合。2.2 顏色表的修改一幅圖像有眾多的事物,為了按照人們的意愿,傳達某種信息,突出自己最想表達的信息,可以用色彩來完成!那么,在我們的圖像中如何完成這樣的任務呢?256色的BMP格式的圖像是有顏色表的。顏色表分R,G,B三種基色。首先,我們應該把顏色表找到并提取出來。根據(jù)BMP圖像數(shù)據(jù)存儲的特點,我們很容易找到顏色表。找到顏色表之后,按照我們的需要,我們所想表達突出的色彩就可以通過修改顏色表的R,G,B三基色的值來完成。將三基色提取出來,并恰當?shù)母娜?到255間的值的大小,使得某種顏色變得突出,以來表達我們想要突出的色彩!例如我們想使花變的更紅一些,我們就可以適當?shù)脑黾覴基色在0到255間的值,減小G,B兩種基色的大小,也就是改變G、B基色在0到255間的值,那么紅色的像素點就會增加紅的級數(shù),這樣就會使圖像的紅色更加突出。同理,適當增加G基色在0到255間的值,減小R,B兩種基色在0到255間的值,綠色的像素點也就相應的增加了級數(shù),那么就可以使圖像的綠色更加突出。例如在一幅春天草地的圖像中,增加G基色的級數(shù),就可以使小草顯得生機勃勃,以表達春意盎然的景象和情感,完成我們的表達重點了!我們更改了256色的BMP格式的顏色表,讓原有的圖像的某種顏色更加突出,來實現(xiàn)我們所需要的色彩的突出。我們更改某種基色,或者更改幾種基色,即重新給某種基色在0到255間賦值,使得圖像的像素都隨之適當變化,達到我們所需的效果。3實驗結(jié)果與分析 以512*512的256色圖像進行結(jié)果的驗證分析。程序運行結(jié)果圖如下:圖1 原圖圖2 原圖的顏色表圖4 藍色突出效果圖3修改顏色表對話框圖5藍色效果顏色表圖1為程序運行打開的原圖,圖2為程序運行獲得的顏色表。圖3 為修改顏色表的對話框,這次修改顏色表目的是突出藍色效果,變化后的結(jié)果為圖4。圖5為修改顏色表突出藍色效果后,獲得的顏色表,在這幅顏色表截圖中可以很明顯的看到顏色表中藍色的顏色條增加了許多。同理可獲得綠色和紅色的突出效果。如圖6,圖7,圖8,圖9所示。圖7 綠色效果顏色表圖6 綠色突出效果圖9 紅色效果顏色表圖8 紅色突出效果4.總結(jié)本文討論了基于VC+6.0集成開發(fā)環(huán)境,打開一幅256色BMP圖像,通過修改其顏色表獲得相應的顏色突出效果。本文對BMP圖像的結(jié)構(gòu)特點和顯示做了簡單的介紹,著重于顏色表的修改。本次的實現(xiàn),

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論