2016-09-21 8 views
0

enter image description here
壁の観点から「ポイント」の位置を取得するにはどうすればよいですか?私は、カメラの視点からx、y、(z)座標を知っています。私は壁の端点を知っています。
ポイントが壁の前に立っていれば、それの魔法使い側(左、右)に立っているかどうかを計算したいと思います。 私の考えは、壁の平面方程式を計算し、その点から平面までの垂線が壁の境界線に当たるかどうかを調べることです。
z座標(非常に不正確です)を使わずに何とかして、壁とカメラの間の角度を変えることはできますか?OpenCVで透視変換を計算する

答えて

0

壁の中心のxc、ycの位置がわかっている場合は、新しい参照系の点のX、Y座標を変換できます。

まず、原点を変換します。カメラは、座標(0,0)、poinxの新しい座標である場合(X「Y」、Z ')は、3Dの世界では

X' = X - xc 
Y' = Y - yc 
Z' = Z 

(あなたのイメージから仮定になります壁ortogonalへの

ここでは、あなたが知っている角度のZ軸を中心に回転させ、壁の中心に対して最終座標X "、Y"、Z "を取得する必要があります。

あなたはrotational matrix around Z

 cos(alpha) -sin (alpha) 0 
R = [sin(alpha) cos(alpha)  0] 
     0   0   1 

を導出し、(ベクトルmoltiplicationの行列)を得る角度のsi aplha場合

(X'', Y'', Z'') = R*(X',Y',Z') 

あなたは今、そのZ '' = Zもう一度

を取得する必要がありますX ''> 0またはX "'< 0(あなたはY'でも行うことができます、それはどの値に依存するかあなたが使用しているFアルファ)


この答えは、あなたがすでに(アルファ、XC、YC、3次元点の座標)を教え、私は方法や戦略が追加されますを持っていないものを想定した場合。

0

z座標が重要でない場合は、それを忘れてx、yだけを使用できます。

飛行機の代わりに、壁の2次元の点に線を合わせます。次に、あなたが提案したように、緑の点を通り壁の線に垂直な線を計算し、壁の線と垂線との交点を計算します。点より

交点のxまたはy座標が壁限界、

x_wall_min < X < x_wall_max又はy_wall_min < Y < y_wall_max、

内にある場合は、壁の前に立ちます。

壁とカメラの間の角度が異なる場合は、「壁の左右」を明確に定義する必要があります。角度によっては明瞭でない場合があります。

関連する問題