との間の角度を計算.....私は今、バウンディングボックスの変更中心点と2次元平面を持っていますフレーム1の中心点がフレーム2の位置を変更したので、これらの2点の角度を求める必要があります。ここで場合、私は2点間の角度を計算しようとしていますC++とOpenCVの</p> <p>での作業ポイント
は私がやろうとしています何の例です:
誰かがこれをワークアウトの方法を提案することができます.......?いくつかの種類の数学的解または恐らくC++関数。
との間の角度を計算.....私は今、バウンディングボックスの変更中心点と2次元平面を持っていますフレーム1の中心点がフレーム2の位置を変更したので、これらの2点の角度を求める必要があります。ここで場合、私は2点間の角度を計算しようとしていますC++とOpenCVの</p> <p>での作業ポイント
は私がやろうとしています何の例です:
誰かがこれをワークアウトの方法を提案することができます.......?いくつかの種類の数学的解または恐らくC++関数。
使用Dot product:
v1.v2 = v1.x * v2.x + v1.y * v2.y
v1.v2 = |v1| * |v2| * cos(theta)
---------------------------------+
|
+--> theta = acos(v1.v2/|v1|*|v2|)
サンプルコードである:
float angleBetween(const Point &v1, const Point &v2)
{
float len1 = sqrt(v1.x * v1.x + v1.y * v1.y);
float len2 = sqrt(v2.x * v2.x + v2.y * v2.y);
float dot = v1.x * v2.x + v1.y * v2.y;
float a = dot/(len1 * len2);
if (a >= 1.0)
return 0.0;
else if (a <= -1.0)
return PI;
else
return acos(a); // 0..PI
}
これは、2つの間に角度がありません画像
以下のようにV1とV2との間の角度を算出しますポイント、ちょうどライン。角度を定義するには2行が必要です。他の行はどこですか? –
ええと、角度はどこですか?つまり、あなたの角度がどこにあるかによって、atan2()関数も便利かもしれませんが、明確な答えを得るために質問/図を改善する必要があります。 –
実際には、画像に角度を描くことができれば便利です。 –