cvDecomposeProjectionMatrix 関数について質問があります。返される平行移動ベクトルは x、y、z、w です。w は 1 または 0 ではないため、x、y、z を w で除算して、ワールド空間の標準化された x、y、z 座標を取得します。しかし、追跡機能がフレーム間で高度な精度を持っているという事実にもかかわらず、座標は非常に不正確な場所にジャンプします。
オイラー角も正しくありません。フレームの正しい対応する回転軸を返しますが、回転しすぎます。たとえば、カメラを x 軸に沿って n 秒間で合計 45 度回転させると、分解行列から 360 度の回転が得られます。
decomposeprojectionmatrix を使用する最も正確な方法は何ですか?
詳細情報:
スタンフォード大学の教授が、opencv を使用してオプティカルフローを計算するサンプル コードを作成しました。
これは、スタンフォード大学の Web サイトにある PDF の最後にあります。私はコードを含めますが、コメントはフォーラムの投稿には少し長くなります. http://robots.stanford.edu/cs223b05/notes/CS%20223-B%20T1%20stavens_opencv_optical_flow.pdf
私はそのサンプルに基づいて構築し、さまざまなビデオ形式で機能を正確に追跡できますが、それらの機能からカメラの位置と回転を推定することは大きな頭痛の種であることがわかりました.