• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:とあるプログラムを教えてほしいのですが)

キーボードから入力された階調数で画像を変換するプログラム

このQ&Aのポイント
  • キーボードから入力された階調数で画像を変換するプログラムを教えてください。
  • プログラムは、入力画像LAX.bmpをキーボードから読み込んだ階調数に変換します。
  • プログラムを実行する際には、元のプログラムの特定の部分に画像処理プログラムを追加してください。

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

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

ステキなくらい丸投げって感じですねぇ…… 入力されるビットマップ(LAX.bmp)のフォーマットも書かれていませんし。 8Bitカラーなのか、16(15)Bitカラーなのか、24bitカラーなのか…… >unsigned char head[1078],buf[YSIZE][XSIZE]; /* 入力ファイル(ビットマップファイル)のヘッダ情報と輝度値情報を格納するための配列*/ ということなので、おそらく8Bitカラー…なのでしょう。 1078なんていうマジックナンバーが唐突として出てくる辺りが、出題者に対してどうなのよ? と突っ込みたいところですが。 # とりあえずsizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+(sizeof(RGBQUAD) * 256)で1078になる…っぽい。 で……8Bitカラーということはカラーパレットがあるワケで、 >「キーボードから何階調にするのかを読み込むことで、入力画像LAX.bmpを任意の階調数に変換する」という はカラーパレットを操作するコトで可能なんじゃないですかねぇ…… ヘッダを構造体ではなくunsigned char head[1078]で一纏めにして読み込んでいるので、カラーパレットいぢるのも手間と言えば手間ですが……。 カラーパレット内のRGB値から明度などを算出、モノクロ化(必要かは不明ですけど)して、階調数に変換…なんでしょう。 たぶん。 # 2階調に変換…だとモノクロビットマップ出力しろってことなんでしょうかねぇ……。

その他の回答 (1)

回答No.2

ビットマップについての知識はありますか?? あるという前提で、以下のサイトを参考にして自分なりにアレンジしてみてください。 参考URL : http://www.ruche-home.net/program/bmp/bitfield