小白一名,在测试opencv自带的SIFT特征点检测的过程中,发现在不设定create的SIFT探测器的参数或者设定的模糊系数较大的时候(未规定指定生成数目),一般会生成巨多的特征点,即使是有另一张图像进行匹配操作,最后得到的匹配对依旧是数量不少(大概对于一张几十k的图,可以生成上百甚至数百个特征点对),更加让人郁闷的是,最后生成的特征点对还不是十分的准确,甚至在一张图像特有的区域,明明另一张图像没有显示出来,却被在显示区域找了一个特征点就这么连接了起来。最后的匹配结果可想而知,看下面这张匹配的杂乱无章的图:
虽然对于一些关键特征点匹配的还是蛮准确,不过有的匹配就略显莫名其妙的。
看来,如果不对这些特征点好好甄别一下,对于匹配操作优化一下,这些匹配信息根本不好用啊。看了一下opencv官网,找到了一个函数findHomography(),opencv是通过调用这个函数来实现RANSAC算法功能的,而RANSAC算法在我的理解就是从找到的匹配点中,随机找四个不共线点的样本,生成一个函数模型,然后将所有其他点带入,根据阈值判断,满足条件则判为内点,以此形式迭代k次,获取到k次迭代生成的内点值最多的情况,并以此得到的模型来模拟变换矩阵。
具体的如何将RANSAC算法整合入o