OpenCV函数findhomography()在两幅图像的匹配点之间找到一个同调变换。(见定义)
为了找到匹配的点子集,可以使用RANSAC。
这里的问题是:与OpenCV中使用RANSAC的其他函数(例如,findfundamentalMat (参见定义))不同,置信度的RANSAC参数不能更改。只有重投影阈值可以作为参数传递。
我查看了OpenCV源代码,对于findhomography(),置信度被硬编码为0.995。
为了我的目的,我需要增加这一点。有没有一种方法可以做到这一点而不改变OpenCV源本身的值呢?
为什么要硬编码呢?
PS:我为下一个subversion添加了一个更改根据票证1557提出的请求。
发布于 2012-01-22 18:31:11
硬编码的原因是对大多数用户来说,这是一个非常好的选择。
也许你是第一个感觉到需要更多东西的人。但这就是为什么OpenCV是开放的-拿走代码,修改它,做一个补丁,并向OpenCV开发团队提出它-任何你喜欢的。
你确定这就是你需要的吗?通常情况下,一个更严格的批评阈值就能做到这一点。如果你有问题,他们可能在其他地方-一些错误的选择点,一个太大的适合误差点匹配,等等。
发布于 2012-04-24 07:12:45
好吧,您并不是第一个需要在OpenCV中更改重编码变量或函数的人。实际上,我们正在改变许多OpenCV功能,以便使它们更快、更高效地用于移动电话。如果要更改RANSAC,只需创建一个具有不同名称的类的副本即可。
class CvModelEstimator2
{
}在您的代码中,并根据需要自行修改它。您还可以更改RANSAC的最大迭代次数,缺省值非常高,使得应用程序非常慢。
https://stackoverflow.com/questions/8960976
复制相似问题