5

OpenCV を理解し、使用しようとしています。2 つのフレーム間の角度を見つけて測定できるかどうかを知りたかったのです。

私は説明します:カムは固定されており、フレームは中心を中心に回転する可能性があり、動かない. 今のところ、手動​​で回転することができたので、フレームを比較して角度を返すことができるようにしたいと考えています。例えば ​​:

double getRotation(Image img1, Image img2) {
  //Compare the frames

  //Return the value
}

そして、その角度に従って回転します。

4

2 に答える 2

3

フレーム上で背景などの静的オブジェクトを検出できる場合は、cvGoodFeaturesToTrack背景上に good_features_to_track ( ) と呼ばれるポイントを見つけて、optical_flow ( ) を使用してこのポイントを追跡できcvCalcOpticalFlowPyrLKます。

回転が「xy」プレーンのみにある場合は、 を使用して回転を検出できますcvGetAffineTransform

回転のみが許可されているため (平行移動とスケーリングは許可されていません)、 によって取得される変換行列を使用して回転角度を決定することは難しくありませんcvGetAffineTransform。その行列は次のようになります ( wikipediaを参照):

ここに画像の説明を入力

\theta は回転角度です

于 2011-05-03T11:49:54.550 に答える
0

これは非常に難しいかもしれませんが、より簡単な解決策は、フレームのハフラインを見つけることかもしれません。もちろん、2つのフレーム間で追跡できる最適で安定した線がどこにあるかを判断する必要があります。それが利用可能になると、2つのフレーム間の角度を見つけることができます。アンドレイが角度を見つけるために提案したことも使用できるはずです。

于 2011-05-03T17:15:21.760 に答える