BMP檔案處理

--

RGB to grayscale的處理流程

檔案格式

簡單來說長這樣

參考資料

點陣圖(Bitmap)檔案格式 : 架構清楚,表格與註解很詳細。

重要的註解
重要的註解

[筆記] BMP點陣圖格式說明,附實例圖解 : 有圖片比較好理解。

解讀方式

在Info header中的Bits Per Pixel (0x1C的位置),決定了點陣圖資料的解讀方式,若為24Bit則在點陣圖資料為3Byte一組 (也就是3個Byte代表一個Pixel); 若為32Bit則在點陣圖資料為4Byte一組。

32Bit 的示意圖

讀取檔案

Matlab

imread萬用

IMG = imread(FILE_NAME);

C

分別建立4個struct放header跟data那些東西,然後還不知道要怎麼把檔案讀進來。

先丟幾個參考連結

BMP image format: 底下有source code連結

C/C++ — Loading Bitmap Files (Manually)

Read and write BMP file in C

BMP檔案格式淺談: 底下也有source code

色彩轉換

Matlab

GRAY = rgb2gray(IMG);

C

在Bitmap Array中,根據Bit Per Pixel將每組pixel依序乘上轉換係數。做完之後再修改BMP Info Header當中對應的參數,應該就這樣。

吧。

Grayscale = R*0.2989 + G*0.5870 + B*0.1140

--

--

Qertile 郭泰爾
Qertile 郭泰爾

Written by Qertile 郭泰爾

學習路上順便做點筆記留下痕跡OUO,怕以後忘了曾經所學的這些知識。

No responses yet