我对opencv findfundamentalMat输出的测试是否合理?

时间:2013-08-15 07:19:35

标签: opencv image-processing

我正在使用     cv:findFundamentalMat(InputArray points1,InputArray points2,OutputArray mask,int method = FM_RANSAC,double param1 = 3.,double param2 = 0.99)来过滤图像关键点对中的异常值。

我使用100点对测试来测试API,我将minDistance设置为1.0,并将confidenceLevel设置为1.0。

输出如下:内点的大小为15,但是当我绘制内部的匹配点时,一对点显然是不正确的。该点的位置是右图像偏移约图像宽度的一半。

由于我不太了解findFundamentalMat中的算法,我的问题是,由于基本矩阵符合这些点,因此上述对应该被认为是异常值。

非常感谢您的帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

计算基本矩阵的公式为:

aFb=0

其中ab是两张图片中的对应点。如公式所示,对于特定点a,基本矩阵在第二张图像中找到一行可能的答案: Fundamental Matrix 因此,RANSAC算法可能会找到一个相应的合法,尽管事实上它比它应该的更远。

除此之外,我认为删除这些异常值的最佳方法是找到合适的Homography矩阵,因为它的公式支持您正在寻找的内容:

Ha=b

无论如何,我们应该看到你的两张图片和你的结果,以便更多地了解这种情况。