• 大小: 1.42MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-05
  • 语言: 其他
  • 标签: SURF  opencv  

资源简介

这是VS2010+opencv2.4.10的SURF工程项目,下载并配置好了就可以使用;如使用其他版本的VS或opencv,则使用其中的源码并新建项目即可。 注:SURF源码本是英文注释,CSDN博主hujingshuang改成了中文注释,以方便大家理解学习,如有出入请以英文源码为准。

资源截图

代码片段和文件信息

/*********************************************************** 
*  --- OpenSURF ---                                       *
*  This library is distributed under the GNU GPL. Please   *
*  use the contact form at http://www.chrisevansdev.com    *
*  for more information.                                   *
*                                                          *
*  C. Evans Research Into Robust Visual Features         *
*  MSc University of Bristol 2008.                        *
*                                                          *
************************************************************/

/***********************************************************
*  translated by Mr.Hu(Graduate Student of SWJTU)    *
*  His E-mail is eleftheria@163.com    *
************************************************************/

#include “surflib.h“
#include “kmeans.h“
#include 
#include 

//-------------------------------------------------------
//为方便您能使用OpenSURF对你能做一些简单的任务做如下说明。
//您只能使用其中一个函数来实现SURF特征提取!
//通过宏定义PROCEDURE的值来明确:
//  - 1 在提供的路径的静态图片上使用
//  - 2 从网络摄像头获取
//  - 3 在图片中找到匹配的目标
//  - 4 显示移动特征
//  - 5 显示静态图像之间的匹配
#define PROCEDURE 5

//-------------------------------------------------------
//  - 1 在提供的路径的静态图片上使用
int mainImage(void)
{
  //声明描述Ipoints的向量(Ipoints=Interest points,即:兴趣点/关键点/特征点)
  IpVec ipts;
  IplImage *img=cvLoadImage(“imgs/sf.jpg“);//载入图片(静态图)

  //检测图像中的特征点,其特征描述存放于向量ipts中
  clock_t start = clock();//计时开始
  surfDetDes(img ipts false 5 4 2 0.0004f); 
  clock_t end = clock();//停止计时

  std::cout<< “OpenSURF found: “ << ipts.size() << “ interest points“ << std::endl;//打印出找到的特征点个数
  std::cout<< “OpenSURF took: “ << float(end - start) / CLOCKS_PER_SEC  << “ seconds“ << std::endl;//打印算法用时

  // 画出检测到的特征点
  drawIpoints(img ipts);
  
  // 显示结果
  showImage(img);

  return 0;
}

//-------------------------------------------------------
//  - 2 从网络摄像头获取
int mainVideo(void)
{
  //初始化摄像头捕捉设备
  CvCapture* capture = cvCaptureFromCAM( CV_CAP_ANY );
  if(!capture) error(“No Capture“);

  // 初始化视频写入
  //cv::VideoWriter vw(“c:\\out.avi“ CV_FOURCC(‘D‘‘I‘‘V‘‘X‘)10cvSize(320240)1);
  //vw << img;

  //创建一个窗口 
  cvNamedWindow(“OpenSURF“ CV_WINDOW_AUTOSIZE );

  //声明特征向量
  IpVec ipts;
  IplImage *img=NULL;

  //主循环
  while( 1 ) 
  {
    //捕捉一帧画面
    img = cvQueryframe(capture);

    //提取surf特征点
    surfDetDes(img ipts false 4 4 2 0.004f);    

    //画出检测到的特征
    drawIpoints(img ipts);

    //绘制帧图片
    drawFPS(img);

    //显示结果
    cvShowImage(“OpenSURF“ img);

    //按Esc键结束循环
    if( (cvWaitKey(10) & 255) == 27 ) break;
  }

  cvReleaseCapture( &capture );
  cvDestroyWindow( “OpenSURF“ );
  return 0;
}


//-------------------------------------------------------

//  - 3 在图片中找到匹配的目标
int mainMatch(void)
{
  //初始化视频捕获设备
  CvCapture* capture = cvCaptureFromCAM( CV_CAP_ANY );
  if(!capture) error(“No Ca

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3490  2015-04-20 10:24  SURF源码(opencv中文注释)\SURF算法\Debug\cl.command.1.tlog

     文件     111040  2015-04-20 10:24  SURF源码(opencv中文注释)\SURF算法\Debug\CL.read.1.tlog

     文件       1858  2015-04-20 10:24  SURF源码(opencv中文注释)\SURF算法\Debug\CL.write.1.tlog

     文件     294546  2015-04-20 10:24  SURF源码(opencv中文注释)\SURF算法\Debug\demo.obj

     文件     307128  2015-04-20 10:20  SURF源码(opencv中文注释)\SURF算法\Debug\fasthessian.obj

     文件      88557  2015-04-20 10:20  SURF源码(opencv中文注释)\SURF算法\Debug\integral.obj

     文件     306304  2015-04-20 10:20  SURF源码(opencv中文注释)\SURF算法\Debug\ipoint.obj

     文件          2  2015-04-20 10:24  SURF源码(opencv中文注释)\SURF算法\Debug\link-cvtres.read.1.tlog

     文件          2  2015-04-20 10:24  SURF源码(opencv中文注释)\SURF算法\Debug\link-cvtres.write.1.tlog

     文件          2  2015-04-20 10:24  SURF源码(opencv中文注释)\SURF算法\Debug\link.2676-cvtres.read.1.tlog

     文件          2  2015-04-20 10:24  SURF源码(opencv中文注释)\SURF算法\Debug\link.2676-cvtres.write.1.tlog

     文件          2  2015-04-20 10:24  SURF源码(opencv中文注释)\SURF算法\Debug\link.2676.read.1.tlog

     文件          2  2015-04-20 10:24  SURF源码(opencv中文注释)\SURF算法\Debug\link.2676.write.1.tlog

     文件       2786  2015-04-20 10:24  SURF源码(opencv中文注释)\SURF算法\Debug\link.command.1.tlog

     文件       5278  2015-04-20 10:24  SURF源码(opencv中文注释)\SURF算法\Debug\link.read.1.tlog

     文件        958  2015-04-20 10:24  SURF源码(opencv中文注释)\SURF算法\Debug\link.write.1.tlog

     文件        344  2015-04-20 10:24  SURF源码(opencv中文注释)\SURF算法\Debug\mt.command.1.tlog

     文件        306  2015-04-20 10:24  SURF源码(opencv中文注释)\SURF算法\Debug\mt.read.1.tlog

     文件        238  2015-04-20 10:24  SURF源码(opencv中文注释)\SURF算法\Debug\mt.write.1.tlog

     文件        446  2015-04-20 10:20  SURF源码(opencv中文注释)\SURF算法\Debug\rc.command.1.tlog

     文件        210  2015-04-20 10:20  SURF源码(opencv中文注释)\SURF算法\Debug\rc.read.1.tlog

     文件        218  2015-04-20 10:20  SURF源码(opencv中文注释)\SURF算法\Debug\rc.write.1.tlog

     文件     219360  2015-04-20 10:20  SURF源码(opencv中文注释)\SURF算法\Debug\surf.obj

     文件     209408  2015-04-20 10:24  SURF源码(opencv中文注释)\SURF算法\Debug\SURF算法.exe

     文件        406  2015-04-20 10:20  SURF源码(opencv中文注释)\SURF算法\Debug\SURF算法.exe.embed.manifest

     文件        472  2015-04-20 10:20  SURF源码(opencv中文注释)\SURF算法\Debug\SURF算法.exe.embed.manifest.res

     文件        381  2015-04-20 10:24  SURF源码(opencv中文注释)\SURF算法\Debug\SURF算法.exe.intermediate.manifest

     文件    1065812  2015-04-20 10:24  SURF源码(opencv中文注释)\SURF算法\Debug\SURF算法.ilk

     文件         53  2015-04-20 10:24  SURF源码(opencv中文注释)\SURF算法\Debug\SURF算法.lastbuildstate

     文件       4198  2015-04-20 10:24  SURF源码(opencv中文注释)\SURF算法\Debug\SURF算法.log

............此处省略50个文件信息

评论

共有 条评论