3

我想通过使用 opencv 来估计已知 3D 对象的位姿。如果给出了 3D 模型的点及其在图像上的对应点,我可以使用 solvePnP。我的问题是:如何找到已知 3D 模型与其在图像上的投影之间的对应关系?十分感谢

4

3 回答 3

3

一旦 3d 模型中的点与场景中的点匹配,您必须应用 cv::findHomography()。此函数计算将 3D 模型中的任何点投影到场景中的矩阵。实际上,单应性计算只需要 4 个匹配项。

于 2012-09-03T13:23:36.603 回答
1

这一直困扰着我,所以我一直在寻找。SoftPOSIT 算法就是你想要的。 http://www.cfar.umd.edu/~daniel/Site_2/Code.html 有一个matlab实现,有些人已经翻译成c/c++

于 2012-12-24T03:52:21.070 回答
1

姿势矩阵 = solvePnP(objectPoints, imagePoints);

imagePoint_computed = objectPoints[i] * poseMatrix * cameraMatrix

找到 j

imagePoints[j] ~= imagePoint_computed。

objectPoints[j] 和 imagePoints[i] 是对应的点。

于 2012-06-26T12:43:27.180 回答