了解了SIFT特征后,来学习SURF特征。

虽说是SIFT的一个变种,可是跟SIFT还是有差别的

差别有例如以下:

1.尺度空间的构建(近似)不同。

2.同意尺度空间多层图像同一时候被处理

3.特征点主方向确定採用haar小波特征统计方法。

4.特征点描写叙述子採用haar小波特征。

接下来贴个SURF匹配代码:

// Load image from file
IplImage *pLeftImage = cvLoadImage("1.jpg", CV_LOAD_IMAGE_GRAYSCALE);
IplImage *pRightImage = cvLoadImage("2.jpg", CV_LOAD_IMAGE_GRAYSCALE); // Convert IplImage to cv::Mat
Mat matLeftImage = Mat(pLeftImage, false); //
Mat matRightImage = Mat(pRightImage, false); // Key point and its descriptor
vector<KeyPoint> LeftKey;
vector<KeyPoint> RightKey;
Mat LeftDescriptor;
Mat RightDescriptor;
vector<DMatch> Matches; // Detect key points from image
FeatureDetector *pDetector = new SurfFeatureDetector; // 这里我们用了SURF特征点
pDetector->detect(matLeftImage, LeftKey);
pDetector->detect(matRightImage, RightKey);
// delete pDetector; // Extract descriptors
DescriptorExtractor *pExtractor = new SurfDescriptorExtractor; // 提取SURF描写叙述向量
pExtractor->compute(matLeftImage, LeftKey, LeftDescriptor);
pExtractor->compute(matRightImage, RightKey, RightDescriptor);
//delete pExtractor; // Matching features
DescriptorMatcher *pMatcher = new FlannBasedMatcher; // 使用Flann匹配算法
pMatcher->match(LeftDescriptor, RightDescriptor, Matches);
//delete pMatcher; // Show result
Mat OutImage;
drawMatches(matLeftImage, LeftKey, matRightImage, RightKey, Matches, OutImage);
cvNamedWindow( "SURF Match features", 1);
cvShowImage("SURF Match features", &(IplImage(OutImage)));
cvWaitKey( 0 );
cvDestroyWindow( "SURF Match features" );
return 0;

调试一下:

两幅图像分别生成SURF特征描写叙述子。

当然也可看到当中的值。

做这个也仅仅是想表达一下 ,OpenCV结合VS能够做到跟MATLAB一样的效果。。。。

SURF学习相关链接:

http://blog.csdn.net/andkobe/article/details/5778739

http://blog.csdn.net/crzy_sparrow/article/details/7392345

http://www2.ulg.ac.be/telecom/research/vibe/download.html

SURF特征的更多相关文章

  1. 基于SURF特征的目标检测

    转战matlab了.步骤说一下: 目标图obj 含目标的场景图scene 载入图像 分别检测SURF特征点 分别提取SURF描述子,即特征向量 用两个特征相互匹配 利用匹配结果计算两者之间的trans ...

  2. 基于SURF特征的图像与视频拼接技术的研究和实现(一)

    基于SURF特征的图像与视频拼接技术的研究和实现(一)      一直有计划研究实时图像拼接,但是直到最近拜读西电2013年张亚娟的<基于SURF特征的图像与视频拼接技术的研究和实现>,条 ...

  3. 【OpenCV新手教程之十八】OpenCV仿射变换 &amp; SURF特征点描写叙述合辑

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/33320997 作者:毛星云(浅墨)  ...

  4. surf特征点检测

    ※注:参数SURF中的hessian阈值是图像Hessian矩阵判别式的阈值,值越大检测出的特征点就越少,也就意味着特征点越稳定 #include "opencv2/core/core.hp ...

  5. 【OpenCV新手教程之十七】OpenCV重映射 &amp; SURF特征点检測合辑

    本系列文章由@浅墨_毛星云 出品.转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/30974513 作者:毛星云(浅墨)  ...

  6. opencv提取surf特征点出现的错误

    opencv实现surf特征的提取.本来是一个非常easy的代码,结果我执行时却出现了各种错误,以下来谈谈我出现的错误及问题的解决过程. 首先,我把提取surf特征的过程整合成了一个函数,我单独建立一 ...

  7. OpenCV-Python sift/surf特征匹配与显示

    import cv2 import numpy as np def drawMatchesKnn_cv2(img1_gray,kp1,img2_gray,kp2,goodMatch): h1, w1 ...

  8. Opencv中使用Surf特征实现图像配准及对透视变换矩阵H的平移修正

    图像配准需要将一张测试图片按照第二张基准图片的尺寸.角度等形态信息进行透视(仿射)变换匹配,本例通过Surf特征的定位和匹配实现图像配准. 配准流程: 1. 提取两幅图像的Surf特征 2. 对Sur ...

  9. opencv::SURF特征

    SURF特征基本介绍 SURF(Speeded Up Robust Features)特征关键特性: -特征检测 -尺度空间 -选择不变性 -特征向量 工作原理 . 选择图像中POI(Points o ...

随机推荐

  1. maven第7章生命周期和插件

    maven插件用到哪些思想? 7.7 从命令行调用插件 目标前缀和插件前缀是一个意思. 在本地搭建maven环境,熟悉maven的环境.

  2. Asp.Net Mvc MapRoute .html不起作用(转)

    RegisterRoutes 注册路由示例配置: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRo ...

  3. vs2013+sql server2012 +win8.1+entity framework + linq

    项目右键添加类选择“ADO.NET实体数据模型” 选择“空……” 项目会自动产生后缀.edmx的文件(ModelTest.edmx),会自动添加引用System.Runtime.Serializati ...

  4. Swift隐式可选型简单介绍

    /* 隐式可选型 */ // 隐式可选型同样可以赋值为nil, 而且在后面对这个变量的使用也可以不用进行解包 var value: String! = nil // print(value) 这行代码 ...

  5. 武汉科技大学ACM :1010: 零起点学算法103——一只小蜜蜂...

    Problem Description 有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行.请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数. 其中,蜂房的结构如下所示. Input 输入数据的第一 ...

  6. mysql中的JOIN用法总结

    join是mysql中一个基础的关键词,一般在多表连接查询中使用,这里做一下总结 1.JOIN的语法格式 table_references: table_reference [, table_refe ...

  7. 函数式编程做用户登陆注册练习-pycharm上

    def login(username,password): """ 用户登陆 :param username: 用户名 :param password:密码 :retur ...

  8. macbook air 安装win7系统时,到最后一步要进入win7,需要给PC设置一个用户名,键盘没反应

    从 bootcamp安装:1.一定要同时选中第一项 制作usb安装盘和第二项 从网上下载最新的windows支持软件,2.然后再选第三项 安装winDows,3.当进入安装界面时选择你要安装的boot ...

  9. Android 常用对话框Dialog封装

    Android 6种 常用对话框Dialog封装 包括: 消息对话框.警示(含确认.取消)对话框.单选对话框. 复选对话框.列表对话框.自定义视图(含确认.取消)对话框 分别如下图所示:       ...

  10. Windows下的SVN环境搭建详解

    前言:最近因为要和其他人合作开发项目,所以花时间搭建了SVN的环境. 因为是初次使用SVN,对于SVN的环境搭建很不熟悉,再加上网上的教程都介绍的比较粗略,导致前前后后重做了几次. 当然最终是搭建成功 ...