3

画像内の正方形を検出するアプリケーションを作成しました。このような正方形 (この場合はマーカー) を含む画像がどのように見えるかをよく理解するために、次のようにします。

検出後に得られるのは、マーカーの四隅の座標です。マーカーにオブジェクトを表示する方法がわかりません。オブジェクトは、マーカーと同じ回転/角度/方向を持つ必要があります。

それを達成する方法についての論文はありますか、それを使用できるアルゴリズムはかなり堅実/機能することが証明されていますか?

それは実用的な解決策である必要はありません。それを達成する方法についての簡単な説明や、それに類似したものである可能性があります。ライブラリなどを教えていただければ、Linux で動作するはずです。Windows は必要ありませんが、ある時点でアプリケーションを移植する必要がある場合に備えて最適です。ARToolkit は既に見ましたが、カメラ パラメーター ファイルとより複雑なマトリックスがありましたが、ビデオ/カメラ ストリーム全体ではなく、4 つのコーナー ポイントと 1 つの画像しか取得できませんでした。

4

2 に答える 2

1

OpenCVを使用cvGetPerspectiveTransformして、正方形をマーカーの角にワープできる変換を見つけてからcvWarpPerspective、画像をワープできると思います。

于 2011-01-08T19:05:12.013 に答える
0

正方形です。法線を持つ平面にあるはずであり、オブジェクトを配置する方法であるため、それを見つける必要があります。すべての y 座標が 0 であると仮定でき、現在はアスペクトの問題を扱っています。たぶん、それを 0-1 の範囲にマッピングすることから始めることができます。最も左のポイントは x で 0、最も右のポイントは 1、z で同じになります - 最も近いのは 0 で、最も遠いのは 1 です。これは、対角線の長さをチェックすることで判断できます。短い方は前と後ろのポイントを接続し、次にもう一方の 2 を接続します。

       x z
left:  0 ?
right: 1 ?
front: ? 0
back:  ? 1

これらだと思いますか?側面から計算できます。正方形を使用すると、問題が単純化されます。右前と左前を結ぶ 2 本の直線が同じ場合、左と右の z 値は 0.5 です。このようにして、3 つの次元すべてを取得し、ベクトルの外積を使用して法線を計算できます。次に、y軸を高さとして持つモデルを取得し、取得した法線に0,1,0ベクトルを回転させるために使用される行列を計算し、位置2D画像を描画して適切にスケーリングします。私があなたを助けたかどうかはわかりませんが、おそらくそれが機能する方法ではないかもしれませんが、役に立つ何かを書いたことを願っています.

于 2011-01-08T18:26:59.300 に答える