0
我有两个世界坐标系,例如coorA
,coorB
。每个系统有4个点(带xyz的3D点),并且都在右手坐标系中。我试过cv::svd
,但结果不对。我想计算从coorA
到coorB
的旋转和平移矩阵。我怎么做?在两个坐标系中给出的点之间的计算转换
我有两个世界坐标系,例如coorA
,coorB
。每个系统有4个点(带xyz的3D点),并且都在右手坐标系中。我试过cv::svd
,但结果不对。我想计算从coorA
到coorB
的旋转和平移矩阵。我怎么做?在两个坐标系中给出的点之间的计算转换
您的系统超定义,因此您应该使用最小化错误度量的方法。 Umeyama的方法是一个很好的解决方案。
从你的标签判断,你更喜欢OpenCV中的解决方案,但是你需要自己实现这样的方法。 您似乎在使用C++,最简单的解决方案可能是使用Eigen数学头文件库及其功能Eigen::umeyama。 OpenCV可以做data conversions to Eigen。
,你是对的,系统是超定义的。两个坐标系在同一个框架中,所以我合并了2个系统,没有必要改变他们。谢谢! – zdczdcc