【发布时间】:2016-08-15 11:34:54
【问题描述】:
我有两个世界坐标系,例如coorA、coorB。每个系统有 4 个点(带有 xyz 的 3D 点),并且都在右手坐标系中。
我用cv::svd 试过了,但结果不对。我想计算从coorA 到coorB 的旋转和平移矩阵。我怎么做?
【问题讨论】:
标签: opencv coordinate-systems coordinate-transformation
我有两个世界坐标系,例如coorA、coorB。每个系统有 4 个点(带有 xyz 的 3D 点),并且都在右手坐标系中。
我用cv::svd 试过了,但结果不对。我想计算从coorA 到coorB 的旋转和平移矩阵。我怎么做?
【问题讨论】:
标签: opencv coordinate-systems coordinate-transformation
您的系统是过度定义的,因此您应该使用一种方法来最小化错误度量。一个很好的解决方案是梅山的方法。
从您的标签来看,您更喜欢 OpenCV 中的解决方案,但您需要自己实现这种方法。 您似乎正在使用 C++,最简单的解决方案可能是使用 Eigen 数学头库及其函数Eigen::umeyama。 OpenCV可以做data conversions to Eigen。
【讨论】: