例題作成プログラム(zip)
(注意 : 7月10日に更新しました.
背景とキャラクタのデータを合成し例題画像を作成するプログラムです.)
注意:これらのプログラムは, システムにすでに netpbm パッケージが
(include/library を含めて)インストールされていることを前提として
います.
例題作成プログラムの使用法
解凍を行うと testptn/ という名称のディレクトリの下に,
Makefile, class1.sh, class2.sh, class3.sh
というファイルと
pnmiwarp/, pnmnoise/, pnmsimp/
というディレクトリに入ったプログラム3個ができます. これをトップ
ディレクトリから
> make programs
を実行します.それぞれのディレクトリの下に実行形式が作成されます.
(これらはシェルスクリプトから実行するので直接実行する必要はありません.)
この際,
netpbm が必要です. Netpbm がインストールされているディレクトリとして,
FreeBSD 標準の
/usr/X11R6/include/{pbmplus.h,pbm.h,pgm.h,ppm.h,pnm.h}
/usr/X11R6/lib/lib{pnm,ppm,pgm,pbm}.a
を仮定してまいす. それぞれの Makefile に内で指定しているので
変更してして使ってください.
pnmiwarp 画像の輝度レベルをランダムに変形します. 内部で輝
度変換テーブル(LUT)を作成し, それにしたがって画
面を一様に処理します. LUT は単調増加が保証されま
すが, 線形ではありません. ガウス乱数を使って直線
からすこしずれた値になります.
pnmnoise 画像にガウス分布を持つ雑音を付加します. 画像の値
は, 元の画像(0-255)でクリッピングされます.
pnmsimp 背景に前景をスーパインポーズします. 背景中の
完全な白画素は透明色と認識されます. これは元々の
仕様. 追加仕様になりますが黒画素も透明色と扱いま
した. これは, 回転を行うプログラム pnmrotate が
回転後に元の図形の周囲に黒画素を残す仕様になって
いることに対応するものです.
クラス1,2,3の例題画像を作成するにはシェルスクリプト
class1.sh, class2.sh class3.sh
を実行します.
class1.sh bsh スクリプト, netpbm パッケージと以下のプログ
ラムとを用いて, 背景に前景をスーパインポーズして
行きます. 以下のパラメータを調整できますので, 手
動で調整してください.
intensity_variance: 明るさの非線型歪み
noise_variance: 全体にかける雑音の分散
background: 背景画像名
foreground: 前景画像名と X Y 位置(中心)
class2.sh 上と同じく, class2 問題を作成します. X Y だけで
なくスケール S を指定するところが違います
class3.sh 上と同じく, class3 問題を作成します. X Y だけで
なくスケール S と回転 R を指定します. オクルージョ
ンは, 隠蔽される側のパターンに重ねて別のパターン
を張り込むことで作ってください.
この際,
../data/
以下に,背景画像 (back.ppm)とキャラクタ画像(inu.ppm, usagi.ppm, ...)
を置いて下さい.
コンテストのホームページに戻る
問い合わせ先
prmucont@cs.titech.ac.jp