資源描述:
《多媒體信息處理技術(shù)報(bào)告new》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、1.BMP圖像的結(jié)構(gòu)與顯示BMP文件是Windows操作系統(tǒng)所推薦和支持的圖像文件格式,是一種將內(nèi)存或顯示器的圖像數(shù)據(jù)不經(jīng)過壓縮而直接按位存盤的文件格式,所以稱為位圖(bitmap)文件,因其文件擴(kuò)展名為BMP,故稱為BMP文件格式,簡稱BMP文件。BMP圖像文件被分成4個(gè)部分:位圖文件頭(BitmapFileHeader)、位圖信息頭(BitmapInfoHeader)、顏色表(ColorMap)和位圖數(shù)據(jù)(即圖像數(shù)據(jù),DataBits或DataBody)。為了實(shí)現(xiàn)BMP圖像的各種處理(如顯示,平滑,銳化等),我們必須清楚BMP圖像文件的
2、組成,下面將詳細(xì)介紹一下BMP圖像的文件格式。1.1BMP圖像的文件格式BMP圖像文件由文件頭、文件信息頭、調(diào)色板和圖像數(shù)據(jù)組成。(1)文件頭文件頭是一個(gè)結(jié)構(gòu),長度為14個(gè)字節(jié),各組成部分如下:WORDbfType//2個(gè)字節(jié)表示文件類型,其值為“BMDWORDbfSize//4個(gè)字節(jié)表示文件的大小。WORDbfReserved1//2個(gè)字節(jié)保留,其值為0。WORDbfReserved1//2個(gè)字節(jié)保留,其值為0。DWORDbfOffBits//4個(gè)字節(jié)表示第一個(gè)像素的偏移量由文件頭可以獲得該文件型、小及第一個(gè)像素的偏移地址。(2)文件信息
3、頭文件信息頭也是一個(gè)結(jié)構(gòu)體,長度為40個(gè)字節(jié),各組成部分如下:DWORLDbiSize//4個(gè)字節(jié)存放文件信息頭的長度,其值為40。LONGbiWidth//4個(gè)字節(jié)存放位圖的寬度。LONGbiHeight//4個(gè)字節(jié)存放位圖的高度。WORDbiplanes//2個(gè)字節(jié)存放平面的數(shù)目,其值為1。WORDbiBitcount//兩個(gè)字節(jié)存放每個(gè)像素所占的位數(shù),其值可以是1,4,8,24等。DWORDbiCompression//4個(gè)字節(jié)指定位圖是否壓縮,其值可以是常值BI_RGB,BI_RLE8,BI_RLE4等。如果沒有壓縮則為BI_RGB
4、(即0)。DWORDbiSizeImage//4個(gè)字節(jié)表示位圖的實(shí)際大小。LONGbiXPelsPerMeter//4個(gè)字節(jié)指定目標(biāo)設(shè)備的水平分辨率,通常不用將其設(shè)為0。LONGbiYPelsPerMeter//4個(gè)字節(jié)指定目標(biāo)設(shè)備的垂直分辨率,通常不用將其設(shè)為0。DWORDbiClrUsed//4個(gè)字節(jié)指定圖像實(shí)際用到的顏色數(shù),若使用所有顏色則值為0。DWORDbiClrImportant//4個(gè)字節(jié)指定圖像中重要的顏色數(shù),若全部重要?jiǎng)t值為0。由文件信息頭可以獲得有關(guān)位圖的詳細(xì)信息,位圖的實(shí)際大小并不等于biWidth和biHeight的
5、乘積。因?yàn)樵诒4嫖粓D時(shí)要求每一行的字?jǐn)?shù)必須是4的整數(shù)倍,如果不是,則需要補(bǔ)齊。(3)顏色表顏色表實(shí)際上是一個(gè)RGBQUAD結(jié)構(gòu)的數(shù)組,數(shù)組的長度由biClrUsed指定(如果該值為零,則由biBitCount指定,即2的biBitCount次冪個(gè)元素)。RGBQUAD結(jié)構(gòu)是一個(gè)結(jié)構(gòu)體類型,占4個(gè)字節(jié),其定義如下:BYTErgbRed//紅色分量BYTErgbGreen//綠色分量BYTErgbBlue//藍(lán)色分量BYTErgbReserved//保留位有些位圖需要顏色表;有些位圖(如真彩色圖)則不需要顏色表,顏色表的長度由BITMAPINF
6、OHEADER結(jié)構(gòu)中biBitCount分量決定。對于biBitCount值為1的二值圖像,每像素占1bit,圖像中只有兩種(如黑白)顏色,顏色表也就有21=2個(gè)表項(xiàng),整個(gè)顏色表的大小為2*sizeof(RGBQUAD)=2*4=8個(gè)字節(jié);對于biBitCount值為8的灰度圖像,每像素占8bit,圖像中有28=256種顏色,顏色表也就有256個(gè)表項(xiàng),且每個(gè)表項(xiàng)的R、G、B分量相等,整個(gè)顏色表的大小為256*sizeof(RGBQUAD)=256*4=1024個(gè)字節(jié);而對于biBitCount=24的真彩色圖像,由于每像素3個(gè)字節(jié)中分別代表
7、了R、G、B三分量的值,此時(shí)不需要顏色表,因此真彩色圖的BITMAPINFOHEADER結(jié)構(gòu)后面直接就是位圖數(shù)據(jù)。(4)位圖數(shù)據(jù)緊跟在顏色表之后的是圖像數(shù)據(jù)字節(jié)陣列,即圖像數(shù)據(jù),記錄了圖像的每一個(gè)像素值。對于有顏色表的位圖,位圖數(shù)據(jù)就是該像素顏色在調(diào)色板中的索引值;對于真彩色圖,位圖數(shù)據(jù)就是實(shí)際的R、G、B值(三個(gè)分量的存儲(chǔ)順序是B、G、R)。相應(yīng)地,對于2色圖象,用1位表示顏色,因此一個(gè)字節(jié)表示8個(gè)像素;對于16色圖象,用4位表示一個(gè)像素的顏色,一個(gè)字節(jié)表示2個(gè)像素;對于256色圖象,用8位表示一個(gè)像素的顏色,一個(gè)字節(jié)只表示1個(gè)像素。圖像
8、的每一掃描行由表示圖像的像素的連素字節(jié)組成,每一行的字節(jié)數(shù)取決于圖像的顏色數(shù)目和用像素表示的圖像寬度。掃描行是由底向上存儲(chǔ)的,這就是說,陣列中的每一個(gè)字節(jié)表示位圖左下角的像素,而