10

OpenCV 函数findhomography()在两个图像的匹配点之间找到一个单应变换。(见定义

为了找到匹配的点子集,可以使用 RANSAC。

这里有一个问题:与 OpenCV 中使用 RANSAC 的其他函数(例如findfundamentalMat(参见定义))相比,无法更改RANSAC置信度参数。 只有重投影阈值可以作为参数传递。

我查看了 OpenCV 源代码,并将findhomography()置信度硬编码为 0.995。

为了我的目的,我需要增加这个。有没有办法在不改变 OpenCV 源本身的值的情况下做到这一点?

是否有理由对此进行硬编码?

PS:我在 Ticket 1557 下添加了下一个颠覆的更改请求。

4

2 回答 2

5

好吧,您不是第一个需要在 OpenCV 中更改硬编码变量或函数的人。实际上,我们正在更改很多 OpenCV 函数,以使它们在手机上更快、更高效。如果要更改 RANSAC,只需创建一个具有不同名称的类的副本

class  CvModelEstimator2
{

}

在您的代码中,并根据需要自行修改。您还可以更改 RANSAC 的最大迭代次数,默认值非常高,使应用程序非常慢。

于 2012-04-24T07:12:45.293 回答
4

之所以要硬编码,是因为对于广大用户来说,这是一个非常不错的选择。

也许你是第一个感到需要更多东西的人。但这就是为什么 OpenCV 是开放的 - 获取代码,修改它,制作补丁并将其提交给 OpenCV 开发团队 - 无论你喜欢什么。

而且,你确定这是你需要的吗?通常,更严格的 reproj 阈值可以解决问题。如果你有问题,它们可能在其他地方——一些选择不当的点,点匹配的拟合误差太大等。

于 2012-01-22T18:31:11.823 回答