C++OpenCV特征提取之如何实现Brisk特征检测与匹配

小编给大家分享一下C++ OpenCV特征提取之如何实现Brisk特征检测与匹配,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

专注于为中小企业提供成都网站设计、网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业张家口免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

前言

BRISK是BRIEF描述子的一种改进,相比于BRIEF特征,它具有旋转不变性、尺度不变性和对噪声的鲁棒性。几个特征检测的速度比较:SIFT>SURF>BRISK>FREAK>ORB,在对有较大模糊的图像配准时,BRISK算法在其中表现最为出色。

Brisk特征介绍

  • 构建尺度空间

  • 特征点检测

  • FAST9-16寻找特征点

  • 特征点定位

  • 关键点描述子

代码演示

我们再新建一个项目名为opencv--brisk,按照配置属性(VS2017配置OpenCV通用属性),然后在源文件写入#include和main方法,这里因为我们肯定能读到图片,所以我都省略了一些判断的语句,详细的判断图片是否读取成功的可以看以前的例子里面。

C++ OpenCV特征提取之如何实现Brisk特征检测与匹配

Brisk检测

我们先来做一下Brisk的检测,检测这里代码比较简单,先用以前的test3的图片进行检测看看效果,下面的检测代码。

C++ OpenCV特征提取之如何实现Brisk特征检测与匹配

然后我们看一下运行的效果

C++ OpenCV特征提取之如何实现Brisk特征检测与匹配

要以看到特征点都检测出来了,感觉效果比起SIFT和SURF都要好一点。下面我们再做一下特征的匹配。


Brisk匹配

做匹配的话我们还是用前面的对应的两个图片test8和test7,接下来我们就来修改代码

首先修改加载的图片

C++ OpenCV特征提取之如何实现Brisk特征检测与匹配

然后重新定义keypoints进行检测

C++ OpenCV特征提取之如何实现Brisk特征检测与匹配

再进行Match的匹配

C++ OpenCV特征提取之如何实现Brisk特征检测与匹配

接下来寻找最好的Match Point

C++ OpenCV特征提取之如何实现Brisk特征检测与匹配

C++ OpenCV特征提取之如何实现Brisk特征检测与匹配

在新图上绘制goodMatch并显示出来

C++ OpenCV特征提取之如何实现Brisk特征检测与匹配


接下来我们看一下运行的效果

C++ OpenCV特征提取之如何实现Brisk特征检测与匹配

以上是“C++ OpenCV特征提取之如何实现Brisk特征检测与匹配”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


网站题目:C++OpenCV特征提取之如何实现Brisk特征检测与匹配
网页链接:http://azwzsj.com/article/jeossd.html