前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++ OpenCV特征提取之KAZE和AKAZE的匹配

C++ OpenCV特征提取之KAZE和AKAZE的匹配

作者头像
Vaccae
发布2019-07-24 10:56:26
1K0
发布2019-07-24 10:56:26
举报
文章被收录于专栏:微卡智享微卡智享

前言

前面我们通过两章《C++ OpenCV特征提取之KAZE检测》《C++ OpenCV特征提取之AKAZE检测》介绍了KAZE和AKAZE的特征子描述,今天我们就来做一下KAZE和AKAZE的特征匹配,话不多说,直接开始。

代码演示

我们再新建一个项目名为opencv-kazedemo,按照配置属性(VS2017配置OpenCV通用属性),然后在源文件写入#include和main方法,下在的代码我们是直接用了前面两张介绍KAZE的描述子的代码直拷贝过来的,所以我这就直接贴过来了,我们一会儿会在这个代码的基础上进行修改匹配。

下面我们来整体改造一下:

因为要进行匹配,所以我们也要按FLANN的方式用到两张图,还是我们原来用FLAAN的那两张。

把原来的src改为了src1和src2了,加载了两张要对比的图。


KAZE

然后定义KAZE的匹配方法,把src1和src2找到的keypoints都存到descriptor里面。


再用Flann的方式进行匹配


画出匹配的关键点

到这里我们先运行一下看看效果

可以看出画上对应匹配的非常多,这样应该是不对的,所以我们还是要用到前面章节学到的,需要寻找最好的匹配。


我们写入再找到最好的匹配代码加进去,然后在drawmatch里面改为画上最好匹配的代码

然后重新显示一下效果

这次可以看到寻找最好的匹配后,不会像刚才那样感觉匹配的非常乱了。


AKAZE

接下来我们直接换一下AKAZE看看效果

我们把原来的KAZE直接改为AKAZE运行,结果发现报错。找了原因改了一下发现是FLANN的匹配就会报错,这样我们改为BFMATCH的匹配。

然后重新运行一下看看结果

对比了上面的KAZE的结果明显能看出来匹配的特征点要少了不少,而且相对的用时也要比KAZE的时间少了一些。


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微卡智享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档