0

我正在使用 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 中的算法,我的问题是,由于基本矩阵与这些点相匹配,因此上述对当然应该被视为异常值。

您的帮助将不胜感激。谢谢你。

4

1 回答 1

1

计算基本矩阵的公式是这样的:

aFb=0

whereab是两幅图像中的对应点。正如公式所暗示的,对于特定点的基本矩阵a在第二张图像中找到了一系列可能的答案: 基本矩阵 因此,RANSAC 算法可能会找到对应的合法值,尽管它比看起来应该的要远。

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

Ha=b

无论如何,我们应该看到你的两张图片和你的结果,更多地了解这件事。

于 2013-08-15T13:54:30.617 回答