サンプルプログラム
サンプルプログラム(gzip+tar)
サンプルプログラム(zip)
gunzip+tar またはwinzipで展開すると, sample2/というディレクトリの下にソース一式
が展開されます. UNIXではMake すれば findit という名前の実行形式が出来ま
す(なお,windows環境でもコンパイルできるはずです).
./findit {template} {image} {result}
とすると動作します.
それぞれの default は, template.ppm, image.ppm, result.ppm という名前の
raw PPM 形式のファイルです.
このサンプルプログラムでは,クラス1に相当する平行移動しか対応しておりま
せん. 応募者は findit.cにある探索の関数
int
findPattern( RGB_PACKED_IMAGE *template, RGB_PACKED_IMAGE *image,
double *cx, double *cy,
double *rotation, double *scaling )
を書き換えて提出していただくことになります.
クラス1の応募者は, cx, cy が
クラス2の応募者は,cx,cy,scalingが,
クラス3の応募者は,cx,cy,rotation,scaling
が戻り値として正しくセットされる必要があります.コンテストではアルゴリズ
ムの内容そのもの,この関数の戻り値の正確さ,そして処理時間が審査の対象と
なります.
座標,変形パラメータに関する注意:
画像座標は, ラスタ走査の座標に従います.すなわち,
画像座標: 左上が 原点, 右に x, 下に y
です.
テンプレートの基準座標は, テンプレート中心におきます. ただし, テンプレー
トの画素サイズが 2 の倍数の場合, テンプレート中心は画素の境界に来るので,
中心の左下側の画素を中心と定義する事にします.
回転に関しては, 画像を反時計廻りに回転させる方向を正の方向とし,
角度は度表示で計ります. (座標軸で +x から +y に近付く方向を正と
するのがふさわしいとの考え方もありますが, pbm のパッケージの定義
が反時計廻りを + にするようになっていますのでこれに合わせます.)
スケーリングは
発見したテンプレートの大きさ
――――――――――――――
元のテンプレートの大きさ
で表現する事にします.
サンプルプログラムのバージョンに関する注意:
現在のプログラムは暫定バージョンです.5月末を目処に改良予定ですので,
このホームページを再度 参照下さい.
コンテストのホームページに戻る
prmucont@cs.titech.ac.jp