OpenCV:用于查找单应性的RANSAC置信度参数

use*_*985 10 opencv image-processing homography

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

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

这是一个问题:与OpenCV中使用RANSAC的其他功能(例如findfundamentalMat(参见定义))相比,RANSAC 置信度 参数不能改变.只有重投影阈值可以作为参数传递.

我查看了OpenCV源代码,并且findhomography()信心被硬编码为0.995.

为了我的目的,我需要增加这个.有没有办法在不更改OpenCV源本身的值的情况下执行此操作?

这有什么理由应该硬编码吗?

PS:我在Ticket 1557下添加了一个更改请求,用于下一次颠覆.

Sam*_*Sam 5

硬编码的原因是对于大多数用户来说,这是一个非常好的选择.

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

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


Jav*_*ock 5

好吧,您不是第一个需要在OpenCV中更改受控变量或函数的人.实际上,我们正在改变许多OpenCV功能,以使它们更快,更高效地用于手机.如果要更改RANSAC,只需使用其他名称创建该类的副本即可

class  CvModelEstimator2
{

}
Run Code Online (Sandbox Code Playgroud)

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