我正在使用OpenCV 2.4.3 C++接口来查找两个图像之间的匹配点。第一次尝试是使用SURF。唯一的问题是消耗时间,所以我尝试了新的FREAK提取器。使用SURF进行检测并使用FREAK进行描述,我意识到FREAK将关键点的数量减少到检测到的几乎一半,并且所得到的匹配不够。这就是我为什么试图快速获得更多关键点的原因。结果:为什么opencv FREAK提取器删除这么多关键点,具体使用ORB检测器
- SURF检测器,SURF提取器,BFMatcher交叉检查true,RANSAC:70个关键点第一个图像,50个关键点第二个图像,200ms。 250毫秒。为15ms。为15ms。
- SURF检测器,提取器FREAK,BFMatcher交叉检查为真,RANSAC:39点的关键点的第一图像,关键点30第二图像(FREAK后),200毫秒,50毫秒。 ,0ms,0ms。结果是很少有很好的配对。
- FAST检测器,提取器FREAK,BFMatcher交叉检查真,RANSAC:120点的关键点,关键点90,(69和FREAK后48个关键点),10毫秒,450毫秒,15毫秒,10毫秒。
之后,我使用ORBFeatureDetector,它获得的关键点数量与FAST相同,但是在FREAK提取器之后,每个图像的结果关键点为0。难道我做错了什么? ORB关键点与从FAST获得的关键点不同? 也许我可以为此打开另一个问题,但我有最后一个问题。为了获得与使用SURF的第一个实验相同的结果,检测器/提取器的最佳组合是什么?但是减少处理时间?因为当我获得更多关键点时,虽然我使用FREAK,但提取器部件也更耗时。
我喜欢用BRREF检测器和FREAK描述符。它工作得很好。 –