zoukankan      html  css  js  c++  java
  • 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


  • 相关阅读:
    Proj THUDBFuzz Paper Reading: PMFuzz: Test Case Generation for Persistent Memory Programs
    入围 WF 后训练记
    算法竞赛历程
    2021 多校 杭电 第十场
    2021 多校 杭电 第九场
    2021 多校 牛客 第十场
    2021 多校 牛客 第九场
    2021 多校 杭电 第八场
    2021 多校 杭电 第六场
    2021 多校 杭电 第七场
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4047955.html
Copyright © 2011-2022 走看看