Opencv学习笔记(六)SURF学习笔记
原创文章,转载请注明出处:http://blog.csdn.net/crzy_sparrow/article/details/7392345
本人挺菜的,肯定有非常多错误纰漏之处 ,希望大家不吝指正。
看了harris角点检測之后,開始研究SURF角点检測,发现挺复杂的,一时也仅仅了解了大概,把了解的东西总结下,以便下次深入学习。
SURF角点检測算法是对SIFT的一种改进,主要体如今速度上,效率更高。它和SIFT的主要差别是图像多尺度空间的构建方法不同。
在计算视觉领域,尺度空间被象征性的表述为一个图像金字塔,向下降採样一般用高斯金字塔。当中,输入图像函数重复与高斯函数的核卷积并重复对其进行二次抽样,这样的方法主要用于SIFT算法的实现,但每层图像依赖于原图像(当前尺度可能和原图象尺度相差非常大,这时候再那原图像卷积确实有点二了),而且图像须要重设尺寸,因此,这样的计算方法运算量较大。SURF算法对积分图像进行操作,卷积仅仅和前一幅图像有关,其降採样的方法是申请添加�图像核的尺寸,这也是SIFT算法与SURF算法在使用金字塔原理方面的不同。SURF算法同意尺度空间多层图像同一时候被处理,不需对图像进行二次抽样,从而提高算法性能。
其他方面的差别,以我菜鸟级的认识,差不大多。
附上两篇SIFT相关的博文,讲得还是比較透彻的,两篇结合起来看基本能明确其原理。
两篇讲的东西有点出入,只是对比着看还是能找出问题的,当然啃论文最easy找出问题了。
SIFT简单介绍:http://www.360doc.com/content/11/1230/23/3054335_176200661.shtml
SIFT算法心得:http://www.360doc.com/content/11/1207/17/3054335_170430459.shtml
其它博文:
SIFT/SURF算法的深入剖析——谈SIFT的精妙与不足:http://hi.baidu.com/xiaoduo170/blog/item/a22bcc1c2349708286d6b636.html
SIFT/SURF系列:http://www.yongblog.com/archives/tag/surf%E7%AE%97%E6%B3%95
SURF论文和源代码(论文讲得非常具体,代码c++实现):
http://download.csdn.net/detail/crzy_sparrow/4171374
opencv小试SURF算法:
#include "opencv2/opencv.hpp"int main(){cv::Mat image, image1 = cv::imread ("test.jpg");//灰度变换cv::cvtColor (image1,image,CV_BGR2GRAY);std::vector<cv::KeyPoint> keypoints;cv::SurfFeatureDetector surf(2500);surf.detect (image,keypoints);cv::drawKeypoints (image,keypoints,image,cv::Scalar::all (255),cv::DrawMatchesFlags::DRAW_RICH_KEYPOINTS);cv::namedWindow ("surf");cv::imshow ("surf",image);cv::waitKey (0);return 0;
}
測试结果:
标记圈的半径长短和特征点所在尺度有关,那条半径是特征点的方向。
SIFT算法的教程、源代码及应用软件
1、ubc:DAVID LOWE---SIFT算法的创始人,两篇巨经典
http://www.cs.ubc.ca/~lowe/
2、cmu:YanKe---PCASIFT,总结的SIFT方面的文章
http://www.andrew.cmu.edu/user/yke/
3、ubc:M.BROWN---SIFT算法用于图像拼接的经典应用autopano-sift,包含一个SIFTLIB库
http://www.cs.ubc.ca/~mbrown/autostitch/autostitch.html
http://www.cs.ubc.ca/~mbrown/panorama/panorama.html
4、toronto:Jepson---Matlab SIFT tutorial, 超级超级超级经典~
http://www.cs.toronto.edu/~jepson/csc2503/
5、ucla:Vedaldi---加州大学一个博士生编的Matlab SIFT tutorial
http://www.cs.ucla.edu/~vedaldi/
6.http://en.wikipedia.org/wiki/Scale-inva ... _transform
7. 大牛整理的计算机视觉分类
http://www.cs.ubc.ca/~lowe/vision.html
8. http://note.sonots.com/SciSoftware/SIFT.html
9.提到了计算变换矩阵的RANSAC法
http://web.engr.oregonstate.edu/~hess/index.html
10. 仿射不变特征点检測,提到了性能评价的方法
http://www.robots.ox.ac.uk/~vgg/research/affine/
11. 一个日本人,挺牛的
http://note.sonots.com/
12. PCA-SIFT
http://www.cs.cmu.edu/~yke/pcasift/
13 opencv sift
http://web.engr.oregonstate.edu/~hess/index.html
14 matlab sift
http://www.vlfeat.org/~vedaldi/code/sift.html
http://www.vlfeat.org/overview/sift.html
15 Improve Scale Invariant Feature Transform (SIFT) 斯坦福
http://robots.stanford.edu/cs223b04/project9.html
16 Known implementations of SIFT mit
http://people.csail.mit.edu/albert/ladypack/wiki/index.php/Known_implementations_of_SIFT
转载于:https://www.cnblogs.com/hrhguanli/p/3779556.html
Opencv学习笔记(六)SURF学习笔记相关推荐
- opencv 手选roi区域_【opencv学习笔记六】图像的ROI区域选择与复制
图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...
- 深度强化学习控制六足机器人移动个人学习笔记(一)
深度强化学习控制六足机器人移动个人学习笔记(一) 注意事项 ubuntu18对应的ros版本不是Kinect gym算法执行中部分包要求Python不低于3.6 conda虚拟环境安装gym-gaze ...
- Ethernet/IP 学习笔记六
Ethernet/IP 学习笔记六 EtherNet/IP defines two primary types of communications: explicit and implicit (Ta ...
- 吴恩达《机器学习》学习笔记六——过拟合与正则化
吴恩达<机器学习>学习笔记六--过拟合与正则化 一. 过拟合问题 1.线性回归过拟合问题 2.逻辑回归过拟合问题 3.过拟合的解决 二. 正则化后的代价函数 1.正则化思想 2.实际使用的 ...
- 视觉SLAM十四讲学习笔记-第六讲学习笔记总结(1)---非线性优化原理
第六讲学习笔记如下: 视觉SLAM十四讲学习笔记-第六讲-非线性优化的状态估计问题_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第六讲-非线性优化的非线性最小二乘问题_ ...
- ROS学习笔记六:理解ROS服务和参数
ROS学习笔记六:理解ROS服务和参数 主要介绍ROS服务和参数,同时使用命令行工具rosservice和rosparam. ROS service service是节点之间互相通信的另一种方式,se ...
- 学习笔记:CentOS7学习之十六:LVM管理和ssm存储管理器使用
目录 学习笔记:CentOS7学习之十六:LVM管理和ssm存储管理器使用 16.1 LVM的工作原理 16.1.1 LVM常用术语 16.1.2 LVM优点 16.2 创建LVM的基本步骤 16.2 ...
- JS学习笔记六:js中的DOM操作
1. JS学习笔记六:js中的DOM操作 文章目录 1. JS学习笔记六:js中的DOM操作 1.1. 获取Dom节点 1.2. 元素属性的操作方式 1.3. DOM节点的创建.插入和删除 1.4. ...
- PMBOK(第六版) 学习笔记 ——《第七章 项目成本管理》
系列文章目录 PMBOK(第六版) 学习笔记 --<第一章 引论> PMBOK(第六版) 学习笔记 --<第二章 项目运行环境> PMBOK(第六版) 学习笔记 --<第 ...
- Python学习笔记六——画小猪佩奇
目录 Python学习笔记六--画小猪佩奇 画布 画笔 属性设置 操纵命令 运动命令 画笔控制命令 全局控制命令 其他命令 Python学习笔记六--画小猪佩奇 使用Python的turtle库可以绘 ...
最新文章
- 过桥问题c语言程序,盏灯过桥游戏
- 图灵五周年回馈读者活动现在开始啦!
- 第三次小组实践作业小组每日进度汇报:2017-12-8
- Python常见问题(2):编程问题 Programming FAQ
- [机器学习笔记]Note8--机器学习应用建议
- 小程序新闻列表页面布局代码_论坛小程序·“我的”页面布局
- 12c rman中输入sql命令
- 软件项目技术点(4)——实现点击画布上元素
- Python图片与其矩阵数据互相转换
- Geodesic Distance(测地距离)
- 小微企业如何创作一个具有品牌故事的软文营销方案
- cf显示网络连接服务器失败怎么办,cf连接服务器失败怎么办
- String slices
- Go第八篇之包的使用
- Java 实现企业级支付
- android sdk所有版本下载,android sdk全平台版本集成
- CSDN写博客图片无水印?一招解决
- 解决VirtualBox增强功能异常
- SpringCloudGateway路由定义存至Mysql数据库
- 2022最新SpringBoot2.X仿B站项目part1笔记
热门文章
- 一个5节点的polardb mysql_POLARDB问题
- zblog php标签,201502200101 zblogphp调整“显示常用标签”个数方法
- echarts一个页面有多个tooltip_可视化工具ECharts入门
- Oracle session解释
- 055_Unicode字符官方标准六
- java param add_Java中的Map paramMap
- mips 内存 linux,MIPS 在linux中的内存映射
- springboot中java泛型使用
- 高性能MySQL(第3版)
- matlab的多项式拟合,函数求导,画函数曲线