原创文章,转载请注明出处: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学习笔记相关推荐

  1. opencv 手选roi区域_【opencv学习笔记六】图像的ROI区域选择与复制

    图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...

  2. 深度强化学习控制六足机器人移动个人学习笔记(一)

    深度强化学习控制六足机器人移动个人学习笔记(一) 注意事项 ubuntu18对应的ros版本不是Kinect gym算法执行中部分包要求Python不低于3.6 conda虚拟环境安装gym-gaze ...

  3. Ethernet/IP 学习笔记六

    Ethernet/IP 学习笔记六 EtherNet/IP defines two primary types of communications: explicit and implicit (Ta ...

  4. 吴恩达《机器学习》学习笔记六——过拟合与正则化

    吴恩达<机器学习>学习笔记六--过拟合与正则化 一. 过拟合问题 1.线性回归过拟合问题 2.逻辑回归过拟合问题 3.过拟合的解决 二. 正则化后的代价函数 1.正则化思想 2.实际使用的 ...

  5. 视觉SLAM十四讲学习笔记-第六讲学习笔记总结(1)---非线性优化原理

    第六讲学习笔记如下: 视觉SLAM十四讲学习笔记-第六讲-非线性优化的状态估计问题_goldqiu的博客-CSDN博客 ​​​​​​视觉SLAM十四讲学习笔记-第六讲-非线性优化的非线性最小二乘问题_ ...

  6. ROS学习笔记六:理解ROS服务和参数

    ROS学习笔记六:理解ROS服务和参数 主要介绍ROS服务和参数,同时使用命令行工具rosservice和rosparam. ROS service service是节点之间互相通信的另一种方式,se ...

  7. 学习笔记:CentOS7学习之十六:LVM管理和ssm存储管理器使用

    目录 学习笔记:CentOS7学习之十六:LVM管理和ssm存储管理器使用 16.1 LVM的工作原理 16.1.1 LVM常用术语 16.1.2 LVM优点 16.2 创建LVM的基本步骤 16.2 ...

  8. JS学习笔记六:js中的DOM操作

    1. JS学习笔记六:js中的DOM操作 文章目录 1. JS学习笔记六:js中的DOM操作 1.1. 获取Dom节点 1.2. 元素属性的操作方式 1.3. DOM节点的创建.插入和删除 1.4. ...

  9. PMBOK(第六版) 学习笔记 ——《第七章 项目成本管理》

    系列文章目录 PMBOK(第六版) 学习笔记 --<第一章 引论> PMBOK(第六版) 学习笔记 --<第二章 项目运行环境> PMBOK(第六版) 学习笔记 --<第 ...

  10. Python学习笔记六——画小猪佩奇

    目录 Python学习笔记六--画小猪佩奇 画布 画笔 属性设置 操纵命令 运动命令 画笔控制命令 全局控制命令 其他命令 Python学习笔记六--画小猪佩奇 使用Python的turtle库可以绘 ...

最新文章

  1. 过桥问题c语言程序,盏灯过桥游戏
  2. 图灵五周年回馈读者活动现在开始啦!
  3. 第三次小组实践作业小组每日进度汇报:2017-12-8
  4. Python常见问题(2):编程问题 Programming FAQ
  5. [机器学习笔记]Note8--机器学习应用建议
  6. 小程序新闻列表页面布局代码_论坛小程序·“我的”页面布局
  7. 12c rman中输入sql命令
  8. 软件项目技术点(4)——实现点击画布上元素
  9. Python图片与其矩阵数据互相转换
  10. Geodesic Distance(测地距离)
  11. 小微企业如何创作一个具有品牌故事的软文营销方案
  12. cf显示网络连接服务器失败怎么办,cf连接服务器失败怎么办
  13. String slices
  14. Go第八篇之包的使用
  15. Java 实现企业级支付
  16. android sdk所有版本下载,android sdk全平台版本集成
  17. CSDN写博客图片无水印?一招解决
  18. 解决VirtualBox增强功能异常
  19. SpringCloudGateway路由定义存至Mysql数据库
  20. 2022最新SpringBoot2.X仿B站项目part1笔记

热门文章

  1. 一个5节点的polardb mysql_POLARDB问题
  2. zblog php标签,201502200101 zblogphp调整“显示常用标签”个数方法
  3. echarts一个页面有多个tooltip_可视化工具ECharts入门
  4. Oracle session解释
  5. 055_Unicode字符官方标准六
  6. java param add_Java中的Map paramMap
  7. mips 内存 linux,MIPS 在linux中的内存映射
  8. springboot中java泛型使用
  9. 高性能MySQL(第3版)
  10. matlab的多项式拟合,函数求导,画函数曲线