C++中怎么利用 OpenCV实现BFMatcher匹配,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
实现原理
发现两幅图片分别提取出来N,M个特征向量
然后对N和M的特征向量进行匹配,找到最佳匹配
然后再画出匹配的特征显示出来
代码演示
我们再新建一个项目名为opencv--brief,按照配置属性(VS2017配置OpenCV通用属性),然后在源文件写入#include和main方法
我们直接读取两个图片进行处理
然后我们就看到进行BFMatch的操作:
1.首先我们先将图片转换为灰度图,转换完的灰度图还是用我们原先定义的src1和src2。
2.通过用Surf的特征检测,把我们对两张图片获取的KeyPoint放到各自对应的descriptor里面。
3.根据上一步已经提取出的descriptor的两个Mat,通过BFMatcher进行最佳匹配,存放到我们定义的一个DMatch里面。
4.最后一步,我们先定义一个输出的图像img_mathces,然后通过drawMatches的方法,把两个图片中的特征点和匹配的结果画出Matches,最后再通过imshow的方法把我们画好的图片显示出来。
看完上述内容,你们掌握C++中怎么利用 OpenCV实现BFMatcher匹配的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。