我想通过使用opencv来估计已知3D对象的姿势。如果给出3D模型的点及其在图像上的对应点,我可以使用solvePnP。我的问题是:如何才能找到已知3D模型与其在图像上的投影之间的对应关系? 非常感谢你
答案 0 :(得分:3)
一旦你在3d模型中有一些点匹配并且在场景中有点,你必须应用cv :: findHomography()。此函数计算矩阵,将矩阵从3D模型投影到场景中。实际上单应性计算只需要4个匹配。
答案 1 :(得分:1)
poseMatrix = solvePnP(objectPoints,imagePoints);
imagePoint_computed = objectPoints [i] * poseMatrix * cameraMatrix
找到
的jimagePoints [j]〜= imagePoint_computed。
objectPoints [j]和imagePoints [i]是对应的点。
答案 2 :(得分:1)
这让我烦恼,所以我一直在寻找。 SoftPOSIT算法就是你想要的。 http://www.cfar.umd.edu/~daniel/Site_2/Code.html 有一个matlab实现,有些人已经翻译成c / c ++