この質問に答えているように見えるGoogleの結果とstackoverflowの投稿がありますが、単純な事実は私がそれらを理解できないということです。どれだけ読んでも、四元数やオイラー角、ロドリゲス変換などに頭を悩ませることはできません。
OpenCVのsolvePnP()メソッドによって返される回転と平行移動のベクトルから3DグラフィックスアプリケーションにプラグインできるxyzPositionとxyzRotationの値を取得する方法を12歳のように説明してくれた人はいますか?
これは、C++の拡張現実アプリケーション用です。OpenCVパーツを起動して実行し、マーカーボードを追跡し、回転と平行移動のベクトルをグラフィックプログラムに送信していますが、その情報を使用して3Dオブジェクトのポーズをとる方法がわかりません。
私は本当にこの背後にある数学を理解したいと思います、そしてここで理論のどんな患者の説明にも感謝します。しかし、私はまた、コピー/貼り付けして別の日に理論を学ぶことができるいくつかのコードへのポインターに落ち着きます。実際、私は具体的なコードを見て理論に逆戻りすることで、このようなことをより早く学ぶようです。
編集:これがあるように...これは明らかに私を正しい方向に向けるべきですが、それは私が知っているすべての人のためのタイムマシンの計画かもしれません。高校の数学の修繕をお願いしているのではないかと思いましたが、初めてではありません。
編集:これは、solvePnP()から返される回転ベクトルと平行移動ベクトルの例です...グラフィックアプリケーションへの旅行のためにXMLに変換されます。私が見たこれらのすべてには、3つの行と1つの列が含まれていることに注意してください。
<Tvec type_id="opencv-matrix">
<rows>3</rows>
<cols>1</cols>
<dt>f</dt>
<data>
-2.50094433e+01 -6.59909010e+00 1.07882790e+02
</data>
</Tvec>
<Rvec type_id="opencv-matrix">
<rows>3</rows>
<cols>1</cols>
<dt>f</dt>
<data>
-1.92100227e+00 -2.11300254e-01 2.80715879e-02
</data>
</Rvec>