OpenCV4.5.5学习笔记(二十二):使用 FLANN 进行特征匹配和ORB算法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

这是这个系列的最后一章,笔者也用了半个多月的时间内复习完了毛星云前辈编写的《OpenCV3编程入门》,非常感谢毛星云前辈。
笔者本科时候有幸接触了OpenCV3.2.0版本的学习,后因考研压力不得不暂时停下学习的脚步,现在考研任务结束了,未来的导师也是从事的该方向,笔者又开始了新一轮的学习。回来发现OpenCV已经出到了4.5.5版本,遂重新下载新版本并决定记录这一学习历程。由于笔者水平有限,可能有错误之处还请诸位大佬多多包涵并烦请指出,让我们一起学习,共同进步。
首先需要说明的是:我是按着毛星云前辈编写的OpenCV3编程入门进行学习的,我会尽力把星云前辈的程序转成符合OpenCV4.5.5版本的。毛星云前辈于2021年12月11日不幸过世,他是我非常敬仰的一位业内大佬,我也是看他的书才开始接触OpenCV。


一、使用 FLANN 进行特征匹配

首先是FlannBasedMatcher类参考。
继承关系:
在这里插入图片描述
匹配方式依靠DescriptorMatcher::match方法
在OpenCV官方文档中是这么写的:
void cv::DescriptorMatcher::match (
InputArray queryDescriptors,
InputArray trainDescriptors,
std::vector< DMatch > & matches,
InputArray mask = noArray()
)
第一个参数是查询描述符集,
第二个参数是训练描述符集,
第三个参数是如果在 mask 中屏蔽了查询描述符,则不会为此描述符添加匹配项。因此,匹配大小可能小于查询描述符计数,
第四个参数是掩码指定输入查询和描述符的训练矩阵之间的允许匹配


二、ORB算法

首先是ORB类参考。
继承关系:
在这里插入图片描述
该算法在金字塔中使用 FAST 来检测稳定的关键点,使用 FAST 或 Harris 响应选择最强的特征,使用一阶矩找到它们的方向并使用 BRIEF(其中随机点对(或 k 元组)的坐标为根据测量的方向旋转)
ORB 基本上是 FAST 关键点检测器和 Brief 描述符的融合,并进行了许多修改以提高性能。首先它使用 FAST 找到关键点,然后应用 Harris 角点度量来找到其中的前 N ​​个点。它还使用金字塔来产生多尺度特征。但一个问题是,FAST 不计算方向。那么旋转不变性呢?作者提出了以下修改。它计算以中心角为中心的贴片的强度加权质心。从这个角点到质心的向量的方向给出了方向。
在OpenCV官方文档中是这么写的:
static Ptr cv::ORB::create (
int nfeatures = 500,
float scaleFactor = 1.2f,
int nlevels = 8,
int edgeThreshold = 31,
int firstLevel = 0,
int WTA_K = 2,
ORB::ScoreType scoreType = ORB::HARRIS_SCORE,
int patchSize = 31,
int fastThreshold = 20
)
第一个参数是要保留的最大特征数,
第二个参数是要保留的最大特征数,
第三个参数金字塔级别的数量,
第四个参数是未检测到特征的边界大小,
第五个参数是将源图像放置到的金字塔级别,
第六个参数是产生定向BRIEF描述符的每个元素的点数,
第七个参数是默认的HARRIS_SCORE表示使用Harris算法对特征进行排序,
第八个参数是面向BRIEF描述符使用的补丁大小,
第九个参数是快速阈值


总结

opencv今犹在,不见当年引路人。缅怀大神。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力找工作的小菜鸡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值