ARToolKitのtwoView その④ 色認識を用いたポインティングデバイス
twoViewを使ったプログラム、4つ目はポインティングデバイスです。
これは、前回の3つのプログラムの機能を合わせて作成しています。
------- < 機能の概要 > -------
以下、プログラムの処理です。
1.最初にカメラ間の関係を表す、変換行列を計算しておく
2.次に、特徴的な色の検出を行う
3.2の結果から、その色の物体の位置を検出
4.2つの物体の位置を元に、ポインティングを行う
1~3までは、これまでのtwoViewを用いたプログラムに対応しています。
------- < 4.2つの物体の位置を元に、ポインティングを行う > -------
ポインティングは次のような手順です
1.2つの目印の距離を測る
2.距離が短いときは、クリックしていると判定
3.クリック中に、3Dモデルとの衝突判定を行う
4.衝突していたら、モデルをカーソルと一緒に移動する
5.距離が離れてクリックが解除されたら、モデルの移動も止める
------- < 参考にした作品 > -------
③にも書きましたが、色認識を用いて物体の位置を求めるアイデアは、こちらの動画からいただきました。
求めた物体の座標をポインティングデバイスとして使用するアイデアは、この動画からのものです。
お二人には、この場を借りて感謝いたします。
また、他の開発者の皆さんからも、たくさんアイデアを頂いています。
良い作品を見せていただき、ありがとうございました。
これからも、よろしくお願いします。
これは、前回の3つのプログラムの機能を合わせて作成しています。
------- < 機能の概要 > -------
以下、プログラムの処理です。
1.最初にカメラ間の関係を表す、変換行列を計算しておく
2.次に、特徴的な色の検出を行う
3.2の結果から、その色の物体の位置を検出
4.2つの物体の位置を元に、ポインティングを行う
1~3までは、これまでのtwoViewを用いたプログラムに対応しています。
------- < 4.2つの物体の位置を元に、ポインティングを行う > -------
ポインティングは次のような手順です
1.2つの目印の距離を測る
2.距離が短いときは、クリックしていると判定
3.クリック中に、3Dモデルとの衝突判定を行う
4.衝突していたら、モデルをカーソルと一緒に移動する
5.距離が離れてクリックが解除されたら、モデルの移動も止める
------- < 参考にした作品 > -------
③にも書きましたが、色認識を用いて物体の位置を求めるアイデアは、こちらの動画からいただきました。
求めた物体の座標をポインティングデバイスとして使用するアイデアは、この動画からのものです。
お二人には、この場を借りて感謝いたします。
また、他の開発者の皆さんからも、たくさんアイデアを頂いています。
良い作品を見せていただき、ありがとうございました。
これからも、よろしくお願いします。

どうもkazです。
twoviewをここまで改良するなんてすごいです。
自分はソースコードを理解するだけで精一杯です。
何かソースコードを書き換えるコツがあったら教えてほしいのですが。
特に、その③の特徴点の距離検出について具体的にどのようにソースコードを書き換えたか、差し支えなければ教えてください。お願いします。
ソースコードについては、近いうちに公開する予定です。
解説も入れますので、それまでお待ちください。