• ベストアンサー

画像処理の仕方

C++を使ってモノクロのビットマップの画像の各ピクセルの輝度を数値化してテキスト形式で出力る物を作りたいと思っているんですが、ビットマップに対してどう処理してやればいいか分りません。誰か教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.3

#1,2です。別の事項なので、一応回答を分割。 > バイナリファイルのダンプ処理というのはどういったものなのか ファイルオープン→1文字読み込み→内容を出力→ファイル末尾まで繰り返し という、非常に単純な処理を繰り返してファイルの内容を表示(ダンプ)します。 16進数表示でどばっと出力されるようなものをダンプといいます。 #include<stdio.h> int main(int argc,char **argv){FILE *fp=fopen(argv[1],"r");while(!feof(fp)){unsigned char c=getc(fp);printf("%d,",c);};fclose(fp);return 0;} 確認してないですけど、こんな感じです。 -- 「fopen バイナリファイル ダンプ 」などのキーワードで検索しますと、具体的なコードを扱ったページが見つかると思います。 第11回 バイナリファイルを扱う http://srd.yahoo.co.jp/PAGE=P/LOC=P/R=3/*http://pepper.is.sci.toho-u.ac.jp/classes/ap03_spring/class11/page1.html バイナリファイルの扱いとWAVEファイル http://srd.yahoo.co.jp/PAGE=P/LOC=P/R=5/*http://www2.tokyo-ct.ac.jp/users/j/staff/kosaka/for_students/LectWAVE/LectWAVE.html など。 -- 扱うファイルのサイズが決まっているような場合、きめ打ちでも良いと思いますが、 126,128,127,127,…,129,128 125,126,126,128,…,128,127 ・ ・ 127,129,131,131,…,129,127 のような出力が欲しい場合には、fread()を使用して横のサイズ分読み込む処理を縦のサイズ分繰り返し。 と言うような感じになると思います。 そんなにややこしくはならない気がしますが、プログラムそのものの回答を書くのもアレなんで。 #bmpファイルは上下ひっくり返っている場合もあるそうなので、その点は面倒かも?

ko-kichi
質問者

お礼

ありがとうございました。まだまだプログラミングに関して勉強不足の点もたくさんありますので、教えていただいたことを参考に勉強していきたいと思います。

その他の回答 (2)

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.2

#1です。 BMPファイルのフォーマットについて、こちらがわかりやすそうです。サンプルもありますし。 bmp ファイルフォーマット http://www.kk.iij4u.or.jp/~kondo/bmp/ -- BMP、ビットマップ、format、ファイルフォーマット、BITMAPFILEHEADER などのキーワードで情報収集してみてください。

参考URL:
http://www.kk.iij4u.or.jp/~kondo/bmp/
  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

> C++を使って 開発環境を明示した方が良いと思います。 Windows2000, VC++6.0, MFC利用 など。 > モノクロのビットマップの画像の各ピクセルの輝度 モノクロというと、黒または白の2値でしょうか? 「輝度」というと256階調のグレースケールのようなイメージもありますが。 ビットマップは.bmpファイルの事? -- 一番シンプルな方法だと、bmpファイルのフォーマットさえ抑えれば、バイナリファイルのダンプ処理とさほど変わらない物になると思います。

ko-kichi
質問者

補足

説明不足ですみませんでした。C++ builder4(ちょっと古いですが)を用いて、bmpファイルの各ピクセルの輝度を調べて表示するアプリケーションソフトを作りたいと思っています。8bitのbmpファイルに対しての処理なので、256階調でのグレースケールでの各ピクセルの輝度の値を求めたいと思っています。ちなみに、OSはwindows xpを使っています。 もしよろしければ、バイナリファイルのダンプ処理というのはどういったものなのか教えていただけますでしょうか?

関連するQ&A

専門家に質問してみよう