cBlog

Tips for you.

【C言語】bmp入出力とグレースケール変換

スポンサーリンク
※当ブログのAmazon、iTunes、サウンドハウス等のリンクはアフィリエイトを利用しています。

前回

やっと、自作入出力ライブラリできました。これで、bmpフォーマットのことは何も考えずに、自分で定義した構造体の上で画像処理できます。

今まで迷っていたことに、コメントする感じで答えていきます。

今日も社内ニート - cBlog

あと、各ラインのピクセル数を4の倍数に切り上げるには、

(int)((n +3)/4)*4

とすればいいことを思いついた。

ピクセル数じゃないですね。byte数が4の倍数になれば十分です。



bmpをcsvにするー - cBlog

(もしかしたら、biXPelsPerMeterとbiYPelsPerMeterはキープした方がいいのかな? 悩む)

生成した画像の解像度を知る術はないので、キープせずに常に0としました。



bmpを扱う件 in C - cBlog

2色、16色のサポートやめよう(迫真)

やめました。
その上で、256色もグレースケールにしか使いません。R chに輝度値、つまりindexを保持することにしています。2値画像も、256色カラーパレットを使って、R chに1が入っていると出力時に255に変換することにしました。ええ、手抜きです。bmpフォーマット自体に興味はないので。


今まで作ったもの

  • bmpを読み込んで(画像データのみ)、ヘッダを付けたうえでそのまま出力
  • グレースケール変換

実装時に思ったことといえば、構造体にパディングが入るので、メンバごとに入出力しないといけないんだなと。
グレースケールの変換式は、
0.2989R + 0.5870G + 0.1140B


今後の実装

  • 2次元fft
  • カラーバー出力