我有两个世界坐标系,例如coorA
、coorB
。每个系统有 4 个点(带有 xyz 的 3D 点),并且都位于右手坐标系中。
我已经用cv::svd
尝试过,但结果不正确。我想计算从 coorA
到 coorB
的旋转和平移矩阵。我怎么做?
最佳答案
您的系统是过度定义的,因此您应该使用一种最小化错误度量的方法。梅山的方法是一个很好的解决方案。
从你的标签来看,你更喜欢 OpenCV 中的解决方案,但你需要自己实现这样的方法。 您似乎正在使用 C++,最简单的解决方案可能是使用 Eigen 数学头库及其函数 Eigen::umeyama 。 OpenCV 可以做data conversions to Eigen .
关于opencv - 计算两个坐标系中给定点之间的变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38954308/