solvePnP / solvePnPRansac没有提供良好的相机位置估计

时间:2017-12-13 02:20:13

标签: python opencv sift opencv-solvepnp

我试图通过在图片中找到平面图像来使用此代码来查找相机位置:

https://docs.opencv.org/3.3.1/d1/de0/tutorial_py_feature_homography.html

对于这张图片,它可以正常工作:

enter image description here

找到模式。我使用cv2.projectPoints在背景图片上绘制图像:

enter image description here

但有时solvePnP会返回疯狂的结果,例如对于此图片:

enter image description here

如果我重新投影模式,我会得到疯狂的形象位置:

enter image description here

对于这种情况,我已经验证了SIFT点,它们看起来正确且匹配:

enter image description here

我尝试使用solvePnPRansac而不是solvePnP,但它没有帮助,估计位置仍然是stange。 可能是什么原因以及如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

好的,我已经设法通过将失真矩阵设置为np.array([])来改善姿势估计,因为我已经在SIFT之前纠正了图像。同样适用于cv2.projectPoints,也不需要为此函数提供失真系数。