【圖像處理基礎】BMP格式圖片的解析

最近一直在用bmp格式的圖片進行圖像算法的學習,對bmp來做一個整理,以備後面使用。

BMP文件格式,又稱爲Bitmap(位圖)或是DIB(Device-Independent Device,設備無關位圖),是Windows系統中廣泛使用的圖像文件格式。由於它可以不作任何變換地保存圖像像素域的數據,因此成爲我們取得RAW數據的重要來源。Windows的圖形用戶界面(graphical user interfaces)也在它的內建圖像子系統GDI中對BMP格式提供了支持。

BMP文件的數據按照從文件頭開始的先後順序分爲四個部分:

bmp文件頭(bmp file header):提供文件的格式、大小等信息

位圖信息頭(bitmap information):提供圖像數據的尺寸、位平面數、壓縮方式、顏色索引等信息

調色板(color palette):可選,如使用索引來表示圖像,調色板就是索引與其對應的顏色的映射表

位圖數據(bitmap data):就是圖像數據啦

從C語言中對他們的定義可以看一下

(1)bmp文件頭(佔14字節

typedef struct tagBITMAPFILEHEADER {
        WORD    bfType; //文件的類型,佔2個字節
        DWORD   bfSize; //文件的大小,佔4個字節
        WORD    bfReserved1; //保留位1,佔2個字節
        WORD    bfReserved2; //保留位2,佔2個字節
        DWORD   bfOffBits; //從文件開始到位圖數據開始之間的數據量,稱爲偏移量:偏移量大小=位圖文件頭大小+位圖信息頭大小+調色板大小。佔4個字節
} BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER;

(2)位圖信息頭(佔40字節

typedef struct tagBITMAPINFOHEADER{
        DWORD      biSize; //位圖信息頭的大小,4個字節。
        LONG       biWidth; //位圖的寬度,單位爲像素點,4個字節。
        LONG       biHeight; //位圖的長度,單位爲像素點,4個字節。
        WORD       biPlanes; //位圖的位面數,總是1,2個字節。
        WORD       biBitCount; //位圖的像素位數,即每個像素點所佔的位數,2個字節。
        DWORD      biCompression; //位圖的壓縮說明:0 - 不壓縮 (使用BI_RGB表示)1 - RLE 8-使用8位RLE壓縮方式(用BI_RLE8表示)2 - RLE 4-使用4位RLE壓縮方式(用BI_RLE4表示)3 - Bitfields-位域存放方式(用BI_BITFIELDS表示),4個字節。
        DWORD      biSizeImage; //位圖數據的大小,必須是4的倍數,4個字節。
        LONG       biXPelsPerMeter; //用像素/米表示的水平分辨率,4個字節。
        LONG       biYPelsPerMeter;//用像素/米表示的垂直分辨率,4個字節。
        DWORD      biClrUsed; //文件使用的顏色數。如果爲0,則表示使用了全部可能的顏色。如8-比特/象素表示爲0x100或者 256,4個字節。
        DWORD      biClrImportant; //指定重要的顏色數。當該域的值等於顏色數時(或者等於0時),表示所有顏色都一樣重要,4個字節。
} BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER;

(3)調色板(調色板大小可選,大小爲N*4(bytes),其中N表示顏色的數目

typedef struct tagRGBQUAD {
        BYTE    rgbBlue;//藍色分量
        BYTE    rgbGreen;//綠色分量
        BYTE    rgbRed;//紅色分量
        BYTE    rgbReserved;//藍保留位
} RGBQUAD;

(4)位圖數據(根據圖片不同所佔大小而不同):

位圖數據就是對應的數組,可以有多種格式,RGB、YUV、HSV等等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章