0
coorA
、coorB
などのワールド座標系が2つあります。各システムは4点(xyzの3D点)を持ち、両方とも右手座標系を持ちます。2つの座標フレームで与えられた点間の変換を計算します。
私はcv::svd
で試しましたが、結果は正しくありませんでした。回転と平行移動の行列をcoorA
からcoorB
まで計算したいと思います。それ、どうやったら出来るの?
coorA
、coorB
などのワールド座標系が2つあります。各システムは4点(xyzの3D点)を持ち、両方とも右手座標系を持ちます。2つの座標フレームで与えられた点間の変換を計算します。
私はcv::svd
で試しましたが、結果は正しくありませんでした。回転と平行移動の行列をcoorA
からcoorB
まで計算したいと思います。それ、どうやったら出来るの?
システムが過度に定義されているため、エラー対策を最小限に抑える方法を使用する必要があります。良い解決策は、梅山の方法です。
あなたのタグから判断すると、あなたはOpenCV内の解決策が好きですが、そのような方法を自分で実装する必要があります。 あなたはC++を使用しているようですが、最も簡単な解決策はおそらくEigen mathヘッダーライブラリとその関数Eigen::umeyamaを使用することです。 OpenCVはdata conversions to Eigenを行うことができます。
あなたが正しいです、システムは過度に定義されています.2つの座標系が同じフレームにあるので、私は2つのシステムをマージし、それらを変換する必要はありません。ありがとうございます! – zdczdcc