サンプルプログラム

サンプルプログラム(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