我尝试使用给出的代码https://docs.opencv.org/3.2.0/da/de9/tutorial_py_epipolar_geometry.html来查找极线,但我没有得到链接中给出的输出,而是得到了以下输出。
但是当将行更改F, mask = cv2.findFundamentalMat(pts1,pts2,cv2.FM_LMEDS)
为
F, mask = cv2.findFundamentalMat(pts1,pts2,cv2.FM_RANSAC)
ie: using RANSAC
algorithm to find Fundamental matrix 而不是LMEDS
这是以下输出。
当同一行替换为F, mask = cv2.findFundamentalMat(pts1,pts2,cv2.FM_8POINT)
ie: use 八点算法时,这是以下输出。
以上关于输出的所有内容都没有任何视觉上的健全性,也没有接近于 opencv 文档中用于查找极线的给定输出。但具有讽刺意味的是,如果通过更改算法以在此特定序列中查找基本矩阵来执行相同的代码
- FM_LMEDS
- FM_8点
- FM_7 点
- FM_LMEDS
生成最准确的结果。这是输出。
我认为我们应该在任何算法的一次运行中获得上述输出(矩阵值和误差的变化)。我是否错误地运行代码?我要做什么才能获得正确的极线(即,视觉上健全)?我正在使用 opencv 版本 3.3.0 和 python 2.7。期待回复。谢谢你。