2016-08-15 27 views
0

coorAcoorBなどのワールド座標系が2つあります。各システムは4点(xyzの3D点)を持ち、両方とも右手座標系を持ちます。2つの座標フレームで与えられた点間の変換を計算します。

私はcv::svdで試しましたが、結果は正しくありませんでした。回転と平行移動の行列をcoorAからcoorBまで計算したいと思います。それ、どうやったら出来るの?

答えて

0

システムが過度に定義されているため、エラー対策を最小限に抑える方法を使用する必要があります。良い解決策は、梅山の方法です。

あなたのタグから判断すると、あなたはOpenCV内の解決策が好きですが、そのような方法を自分で実装する必要があります。 あなたはC++を使用しているようですが、最も簡単な解決策はおそらくEigen mathヘッダーライブラリとその関数Eigen::umeyamaを使用することです。 OpenCVはdata conversions to Eigenを行うことができます。

+0

あなたが正しいです、システムは過度に定義されています.2つの座標系が同じフレームにあるので、私は2つのシステムをマージし、それらを変換する必要はありません。ありがとうございます! – zdczdcc

関連する問題