Opencv下利用SIFT、SURF、ORB三种特征点实现图像匹配
来源:互联网 发布:依恋淘宝官方旗舰店 编辑:程序博客网 时间:2024/05/16 15:30
Opencv下利用SIFT、SURF、ORB三种特征点实现图像匹配
视频项目中要用到拼接,这里记录一下SIFT、SURF、ORB三种特征点。
本文不做过多的理论解释,只是利用opencv简单实现三种特征点匹配算法的验证(改进的部分暂未上传)。
代码下载地址:Opencv下利用SIFT、SURF、ORB三种特征点实现图像匹配
环境:
Windows下vs2010,opev2.4.9;
代码release下编译,工程release下的exe可以直接运行;编译工程需要配置opencv,见:opencv配置
注意:
工程具体添加以下lib(release下的dll与以下的lib是对应的):
opencv_core249.lib
opencv_highgui249.lib
opencv_imgproc249.lib
opencv_features2d249.lib
opencv_nonfree249.lib
opencv_legacy249.lib
SIFT算法
SIFT特征是图像的局部特征,对平移、旋转、尺度缩放、亮度变化、遮挡和噪声等具有良好的不变性,对视觉变化、仿射变换也保持一定程度的稳定性。SIFT算法时间复杂度的瓶颈在于描述子的建立和匹配 ,如何优化对特征点的描述方法是提升SIFT效率的关键。
作者David Lowe原文(附有demo)
Distinctive image features from scale-invariant keypoints
下载地址:
http://www.cs.ubc.ca/~lowe/keypoints/
附个SIFT算法讲解的帖子:
http://blog.csdn.net/abcjennifer/article/details/7639681/
https://www.52ml.net/2713.htmlSURF算法
SURF算法的优点是速度远快于SIFT且稳定性好;在时间上,SURF运行速度大约为SIFT的3倍;在质量上,SURF的鲁棒性很好,特征点识别率较SIFT高,在视角、光照、尺度变化等情形下,大体上都优于SIFT。
作者原文:Speeded-Up Robust Features (SURF)
下载地址:
http://www.sciencedirect.com/science/article/pii/S1077314207001555
附个SURF算法讲解的子:
https://www.52ml.net/2709.htmlORB算法
这个算法是由Ethan Rublee,Vincent Rabaud,Kurt Konolige以及Gary R.Bradski在2011年一篇名为“ORB:An Efficient Alternative to SIFT or SURF”的文章中提出。
原文下载地址:
http://ieeexplore.ieee.org/document/6126544/?reload=true&arnumber=6126544
附个ORB算法讲解的帖子:
http://www.cnblogs.com/ronny/p/4083537.html三种特征点
1)尺度、旋转不变性(ORB算法在尺度方面效果较差);
2)ORB较快,SURF运行速度大约为SIFT的3倍,ORB是sift的100倍,是surf的10倍。(这里摘录网上看到的,,具体视具体的数据);
3)SURF的鲁棒性较好
具体的三种性能比较可见这篇文章:
(1)多种角度比较SIFT、SURF、BRISK、ORB、FREAK算法
(2)http://blog.jobbole.com/83919/- 衡量指标与改进方向
一般用于图像匹配或者配置及拼接时:常有以下衡量指标:
检测关键点,检测时间,匹配点对数,匹配时间;误匹配点对;主观效果。
改进方向:
特征点提取:对上述三种算法的特征点提取及描述方面加以某种改进。
匹配:通常在匹配时有kd树搜素、双向匹配;在视频中可在首帧进行匹配求得变换矩阵,在首帧之后的k帧一直采用上述变换矩阵。RANSAC算法剔除误匹配点。
效果图:
简单使用:
匹配效果:
第一组:
SIFT:
SURF:
ORB:
第二组:
SIFT:
SURF:
ORB:
随机测试:
在提取特征点后,只利用opencv自带的BruteForceMatcher进行特征点的匹配且未进行误匹配点的剔除的情况下。匹配结果在两幅根本不关联的图像也会匹配出较多的匹配点。所有,利用上述三种算法进行特征点提取后,要在匹配中进行改进。改进版的下次再写。
- Opencv下利用SIFT、SURF、ORB三种特征点实现图像匹配
- OpenCv sift surf orb等特征点检测
- OpenCv的sift surf orb等特征点检测
- 利用特征点(Brief,ORB,SIFT)进行图像匹配,模板匹配
- 利用特征点(Brief,ORB,SIFT)进行图像匹配,模板匹配
- 利用特征点(Brief,ORB,SIFT)进行图像匹配,模板匹配
- 特征匹配,sift,surf,orb,brisk,brief
- 图像特征检测描述(一):SIFT、SURF、ORB、HOG、LBP特征的原理概述及OpenCV代码实现
- 图像特征检测描述(一):SIFT、SURF、ORB、HOG、LBP特征的原理概述及OpenCV代码实现
- SURF SIFT ORB三种特征检测算法比较
- OpenCV中feature2D学习——SIFT和SURF算子实现特征点提取与匹配
- OpenCV中feature2D学习——SIFT和SURF算子实现特征点提取与匹配
- opencv上gpu版surf特征点与orb特征点提取及匹配实例
- opencv上gpu版surf特征点与orb特征点提取及匹配实例
- opencv 特征点提取算法 SIFT SURF ORB FAST LBP学习(一)
- opencv 特征点提取算法 SIFT SURF ORB FAST LBP学习(二)
- ORB 一种特征匹配替代方法:对比SIFT或SURF
- 【OpenCV】SURF算法之视频图像实时特征点匹配
- TMS320F28027将程序下载到flash中运行
- jQuery.ajaxSetup() 函数详解
- 处理大并发之一 对异步非阻塞的理解
- 不同领域开发工具 Top 50
- 支持向量机通俗导论(理解SVM的三层境界)
- Opencv下利用SIFT、SURF、ORB三种特征点实现图像匹配
- Reactor设计模式
- 简单的ajax与layer结合删除
- 网络安全解决方案
- 【整理】__builtin_expect 解惑
- 给定整数a1、a2、a3、...、an,判断是否可以从中选出若干个数,使得它们的和等于k(k任意给定,且满足-10^8 <= k <= 10^8)。
- word不能粘贴文字问题
- nginx+ftp搭建图片服务器
- c++ 编写程序开机自动启动,读取配置文件问题