OpenCV实践之HarrisAffine仿射匹配算法

本文介绍了如何使用OpenCV的HarrisLaplaceFeatureDetector和AffineFeature2D类实现HarrisAffine仿射匹配算法。通过分析源代码并提供实验结果,展示了该算法在仿射不变点检测和匹配中的应用。提供了代码下载链接以便读者进一步研究。
HarrisAffine仿射匹配算法简述

  之前我的一篇博客HarrisAffine仿射不变匹配算法 已经详细介绍HarrisAffine匹配算法的详细过程,在那篇博客末尾提供了HessianAffine匹配算法,但是并没有提供HarrisAffine仿射匹配算法。原因其实主要在于HarrisAffine的源代码我自己测试时候鲁棒性比较差,另一方面算法迭代仿射不变点耗时较长。最近有研究OpenCV库中特征类中的仿射不变算法,发现在xfeatures2d.hpp中已经存在HarrisLaplaceFeatureDetector与AffineFeature2D类,里面已经封装好HarrisAffine匹配算法。经过分析研究简单调用实现HarrisAffine匹配算法,希望可以对研究仿射匹配算法的同志们有所帮助。如有错误,还请指出改正。

OpenCV之HarrisLaplaceFeatureDetector接口

  关于HarrisLaplaceFeatureDetector类继承Feature2D类,其中对外接口参数比较简单,构建尺度空间的塔数与层数,最大尺度点数限制,DoG阈值等如下图所示。

OpenCV之HarrisAffine匹配代码

主程序部分: 特征点检测部分采取HarrisLaplace检测,然后进行仿射迭代求取稳定仿射不变点,对局部区域进行SIFT描述符构建,匹配阶段首先采取FLANN进行粗匹配,随后采取(向量场)VFC进行精确点提纯。

辅助函数
将椭圆特征点Elliptic_KeyPoint数据结构转换成标准KeyPoint结构
绘制Elliptic_KeyPoint椭圆特征点及其轮廓函数

实验结果


HarrisAffine算法检测的仿射不变点检测与匹配结果 视差角度为45度 图片来自ASIFT网站

HarrisAffine算法检测的仿射不变点检测与匹配结果 视差角度为50度 图片来自VGG

代码下载

Github:   https://github.com/SmallMunich/HarrisAffineMatch_OpenCV

参考

http://www.robots.ox.ac.uk/~vgg/research/affine/
http://www.escience.cn/people/jiayima/index.html
https://opencv.org/

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值