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

发布时间:2021-11-26 10:22:57 作者:小新
来源:亿速云 阅读:326

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

前言

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

Brisk特征介绍

代码演示

我们再新建一个项目名为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特征检测与匹配”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

推荐阅读:
  1. opencv3/C++如何实现SURF特征检测
  2. C++ OpenCV特征提取之如何实现Harris角点检测

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++ opencv

上一篇:C++ OpenCV特征提取之如何实现自定义角点检测器

下一篇:C#如何实现基于Socket套接字的网络通信封装

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》