2009年2月5日木曜日
異なる大きさのマーカ、同じIDを持つマーカ
ArManWrap.ARTKPSetPatternWidthメソッドにはマーカの大きさの実測値を指定するのだと思っていたのだが、そうではないようだ。これは、マーカ座標系におけるマーカをあらわす正方形の大きさを指定するメソッドみたいだ。つまり、例えば10.0を指定すると、(-5,-5)-(5,-5)-(5,5)-(-5,5)を頂点とする正方形を作ってから変換行列を取得して適用してやると、ちょうど画面上でマーカと重なるようになる。
そういうわけで、使っていたマーカが一辺3cmなのでこのパラメタに30を指定していたのだが、大きさの違うマーカもそのまま認識してくれた。
また、2Dバーコードを認識するというコンセプト上、同じIDのマーカが複数あっても何の問題もなく認識してくれた。中々守備範囲が広い。
カメラの位置に点光源を置いた
高速化
ARToolkitPlusとWPFの組み合わせのサンプルのコードを少し高速化した。といっても、高速化の余地はほとんどなくて、描画のコールバックの度にキットの初期化とクリーンアップを行っていたのをウィンドウのロード時とクローズ時に行うようにしただけ。でも結構な負荷だったようでかなり動作が改善された。
それにしても今日は、午前中に横になっていたら、午後になって割と調子が良い。眼はすげー霞んでるけど。
ARToolkitPlus+DShowNET+WPFのサンプル
ARTolkitPlus+DShowNET+WPFのサンプルをここに置いておいた。この構成で、全てが上手くいけば、Visual C# 2008で一発でビルドが通るはず。
遊び方:
- data/00-04.pngを開いて、マーカの一辺が3cmくらいになるように印刷します。マーカーを少し白い余白が残るように切り取ります。
- ソースに興味があるならばARWithWPF.slnを開きます。三つのプロジェクトが入っていますが、全てビルドしてみましょう。上手くいけば一発で通ります。ソースに興味がなければ、バイナリ入りなので次に進みます。
- PCカメラの接続を確認してARWithWPF/bin/release/ARWithWPF.exeを実行します。設定ダイアログは初期値のままでかまいません。
- マーカを何枚か平らな場所に置いてカメラに映るように配置します。文字が表示されたら成功!ID0番のマーカは少し認識し難いです。
なお、今回から設定をアプリケーションスコープにした。変更の必要があれば、開発環境からデフォルト値を変更するか、bin/release/ARWithWPF.exe.configを書き換えてください。
登録:
投稿 (Atom)