• 締切済み

C言語で添付ファイルの様な正弦波状の濃度分布を持った画像を作成したいの

C言語で添付ファイルの様な正弦波状の濃度分布を持った画像を作成したいのですが,どの様なプログラムを組めば良いのでしょうか? 一画素毎に濃度が変化する様な精密な物を必要としています. どなたか,わかる方お願いいたします.

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

C言語の基礎はわかっているものとして回答します。 1) 画像が入る分の配列を用意する。 2) 全座標について、その座標の濃度を計算して、配列の該当する添字のところに代入する。 3) 配列の内容を画像フォーマットにしたがった方式でファイルに出力する。 1) 8bitグレースケール、幅width,高さheight の画像なら unsigned char picture[height * width] ; /*一次元配列で*/ または unsigned char picture[height][width] ; /*二次元配列で*/ が普通でしょう。 3)によっては、それが推奨する形式がいいかもしれません。 また、サイズが大きすぎると確保に失敗することがあります。その場合はstaticを使うとか、mallocで確保するとか、コンパイル時にスタックサイズを増やすとかで対応します。 2) 上の例では 0~255 の範囲に値を入れる必要があるので、例えば (unsigned char)( 255.0 * (sin(2 * M_PI * y座標 / 周期)+1.0)/2.0) と計算し、結果を1)の配列に代入していきます。forの二重ループが有効でしょう。 3) 一般的な方法はありません。 ・OSや画像処理ライブラリで用意されているAPIを使う  → 各OS,ライブラリのドキュメントを参照のこと ・フォーマットの仕様書を参考に自作する

すると、全ての回答が全文表示されます。

関連するQ&A