ARToolkitのマーカーファイルを独自のものにしたい。
目的は友人からの一言「MTGのマナシンボル認識できれば遊べるんじゃね?」と。
1,マーカーパターン生成ツールをダウンロード
ARToolkitに認識するマーカーパターンファイルの生成ツールが入っているらしいので、ダウンロードしてくる。
2,マーカーパターンの生成ツールを起動する
1, ARToolkitをダウンロードして展開(SourceForgeにある)
2, ARToolKit-2.72.1-bin-win32\ARToolKit\binにあるmk_patt.exeを実行
起動しません。
glut32.dllが無いとか。
Windows8-64bit版の罠か?
3, OpenGL(GLUT.dll)のダウンロード
問題のDLLはopenGLのdllらしいので、適当に検索してダウンロード。
http://user.xmission.com/~nate/glut.html
バイナリ版とソース版があるけども、とりあえずバイナリ版でいいや。Windows上でOpenGLのコードいじり倒すつもりないし。
システムに突っ込むのは何か嫌なので、mk_patt.exeと同じパスにこのDLLを置く。
実行ファイルがDLL探すとき、自身のパスを探すのでこれでいけるハズ。
再びmk_patt.exeを起動。OK。起動した。
4, パターンファイルの作り方
Enter Camera parameter filename(Data/camera_para.dat)と表示される。
そのままEnterを押す。
Webカメラからの画像キャプチャが開始される。
Webカメラから取り込んだ画像中にマーカーとして認識できるものがあれば、赤と緑の枠で表示される。
左クリックするとプロンプトに"Enter filename:"と入力されるので、お好みのファイル名を入力する。
これでパターンファイルができるので、ひとつ前のエントリで書いたサンプルプログラムのasset/patディレクトリに格納して、パターンファイル名を置き換えてあげればよい。
5, パターンファイル生成の条件
パターンファイルとして使うためには、画像の認識の条件がいくつかある模様。
・黒枠カード+白色背景(デュエル用の卓)
この原因について考察。
パターン認識のコード見ると、輪郭抽出+四角形抽出としているので、次のようなケースだと輪郭抽出が失敗するのだと思われる。
・白枠+白色背景
これは輪郭抽出ができないことに起因する問題だと思われる
ということは、マナシンボルやらエキスパンションマークなんかはそのまま認識するのがムリ。カードの構成上、違うアプローチをしないといけない。
真面目に画像処理の勉強始めますかね。