2017-12-28 10 views
0

私はopencvとコンピュータビジョンの新人です。私は2つのカメラポーズの間にRとt行列を求めたい。私は、一般的にウィキペディアを次のOpenCvは必須の行列からRとtを得る

https://en.wikipedia.org/wiki/Essential_matrix#Determining_R_and_t_from_E

Iは、2枚の画像における同じ点の関連する画素位置のグループを見つけます。私は本質的な行列を得る。その後、SVDを実行します。 2つの可能なRと2つの可能なtを印刷します。

[として期待される動作します何]

私は一人で回転(ロールの1、ピッチ、ヨー)、または単独の翻訳(X、Y、Zのいずれか)を変更した場合、それは完璧に動作します。たとえば、ピッチを15度に増やした場合、Rを取得し、デルタピッチが+14.9度であることがわかります。 xを10cmだけ増やすと、t行列は[0.96、-0.2、-0.2]のようになります。

[うまくいかどう]

私は回転と翻訳の両方を変更する場合は、Rとtはナンセンスです。たとえば、xを10cm増やしてピッチを15度に増やすと、デルタ次数は[-23、8,0.5]になり、t行列は[0.7、0.5、0.5]のようになります。

[質問]

私が同時に回転し、翻訳を変更した場合、私は良い結果を得ることができなかった理由を、私は思ったんだけど。また、無関係の回転や平行移動(ロール、ヨー、y、z)もそれほど変化しない理由は混乱しています。

誰でも私を理解してもらえますか?ありがとう。


【解決しようと理由]

OpenCVのは、右手座標系を使用します。これは、z軸がxy平面から観察者方向に投影されることを意味する。そして、我々のシステムは左手座標系を使用しています。したがって、変更がz軸に関連している限り、結果は非意味的です。

答えて

0

これは座標を使用しているために解決されています。

OpenCVは右手座標系を使用します。これは、z軸がxy平面から観察者方向に投影されることを意味する。そして、我々のシステムは左手座標系を使用しています。したがって、変更がz軸に関連している限り、結果は非意味的です。

関連する問題