README-simple

シンプル画像処理サンプルプログラムsimple_sampleについて
                                                            大島正毅
                                                            平澤雅人
                                           長谷川為春

                   初版    2001.07.06
                                      改訂日   2001.07.23

普通、画像処理関連のプログラムを作ろうとすると、画像データのディスク
からの読み出し、何らかの画像処理、結果のディスプレイへの表示を行わな
くてはなりません。

つまずきの種は一杯あり、初心者を苦しめる種にはことかきません。このよう
な問題の助けになるようにプログラムを提供します。なるべく簡潔にしかも相
応の融通性のあるサンプルであることをねらいました。また自己完結性を持た
せるようにしました。

samplen.cはUNIX環境でc言語で開発・研究することを想定して、入力ファイ
ルとしてSun MicroSystems社の定めているrasterfileを想定し濃淡に限っ
て扱います。また、出力はX-Windowシステムとし、通常見られる8ビットカ
ラーのほか16ビットカラーのディスプレイでも使えるようにしています(学
内の方へ:情報処理センターの教育用端末は16ビットカラーです)。

samplen.c では、‐ ‐ ‐ ‐ user_prog start ‐ ‐ ‐ ‐ というところ
から、‐ ‐ ‐ ‐ user_prog end ‐ ‐ ‐ ‐ という部分を自分でプログ
ラムすると画像処理できるようにしてあります。例ではinput_dataの各画素
の濃淡値を読み取り、それをそのままoutput_dataに書き出すようになって
います。これがディスプレイに表示されます。そのままだとprog2 という
のを使うようになっていますが、初心者向けにはprog の方がベターです(2 
次元配列を素直に使えるから)。/*と */で囲んであります(コメントアウ
トという)、使うにはこれらを外して逆にprog をコメントアウトします。
prog2 の利点は画像ファイルの大きさを気にしなくてよいところです(この
ため当初はprog2 を使うようにしてあります。画像データのエリアを主記憶
上に定義するとき、2次元配列を用いる代わりにmalloc関数を呼ぶことによっ
て実現しています)。自分のプログラムを作るときは、使う画像ファイルサ
イズを当面は固定してください。未知のサイズの画像ファイルを用いるとき
はchkimf.c からchkimf を作り、それを使って使うファイルの画像サイズを
調べることができます。あるいはSolarisの最近の版だとfileコマンドで、
サイズを調べることができます。画像のサイズが分ったら、samplen.c の上
の方の
#define XMAX 720
#define YMAX 486 の部分(ここもコメントアウトしてある)のコメントアウ
トを外して、そこに画像サイズを入れてください。1次元データへの2次元
アクセスの仕方が分る人は、ここに述べた操作をしないで、そのままで使っ
た方が画像サイズを選ばないので便利かも知れません。

一般的なインストールの仕方はインストールの仕方の項を、トラブルシュー
ティングについてはトラブルシューティングの項を参照してください。

実行の仕方は %samplen 画像ファイル名 です。実行すると管面にラバーバ
ンドと呼ぶ、表示画像サイズをきめるための表示が出るので、マウスで適当
な位置を指示すると入力画像が表示されます。Hit [ Enter] !というメッセ
ージに対してreturn (enter)キーを押すと、もう一つウインドウが出て出力
画像が表示されます(またgoto event loopというメッセージが出ます)。
かげになった画像の上部の横線部をマウスクリックすると再表示されます。
また、画像の一部をクリックするとプログラムが終了します。simplen.cでは、
管面の再描画ということを行っていて、X-Windowシステムのイベント処理の
プログラム例にもなっています。

従来winnという名でプログラムを提供してきました。機能を充実させる一方で、
全体が複雑化して、当初の主旨と離れているきらいがあります。そこで、winn
シリーズに比べて、より簡潔で自己完結しているこのsimple_sampleを提供す
ることにしました。こちらはより初心者向けです。ただし、その分サポート範
囲は狭くなっています。

このプログラムは学生実験用に大学院生の平澤雅人君が長谷川為春氏の助けを
得て作ったプログラムを原形として大島が手を加えたものです。なお、
samplen.cなる名前は、原形としたプログラムがsample.cだったので、それを
改良し新しいものとしたという意味でnを付けたものです。

本サンプルプログラムを使いたい人は自由に使って画像処理の基本プログラム
やさらに応用的なプログラムを書く参考にしてください。

このプログラムは拙い作品ですので、それほど誇れるものではありません。た
だ自分でゼロから作るよりはましでしょうから、参考にしてよりよいプログラ
ムを作ってください。改良品ができたらフィードバックして下さい。

質問は随時受付けます。


戻る