• 大小: 4.34MB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-01-24
  • 语言: 其他
  • 标签: surf  算法  

资源简介

surf的原始论文。对做图像匹配的朋友有一定帮助。 SURF意指 加速的具有鲁棒性的特征,由Bay在2006年首次提出,这项技术可以应用于计算机视觉的物体识别以及3D重构中。SURF算子由SIFT算子改进而来,一般来说,标准的SURF算子比SIFT算子快好几倍,并且在多幅图片下具有更好的鲁棒性。SURF最大的特征在于采用了harr特征以及积分图像integral image的概念,这大大加快了程序的运行时间。

资源截图

代码片段和文件信息

/*
 * Speeded-Up Robust Features (SURF)
 * http://people.ee.ethz.ch/~surf
 *
 * Authors: Herbert Bay Andreas Ess Geert Willems
 * Windows port by Stefan Saur
 *
 * Copyright (2006): ETH Zurich Switzerland
 * Katholieke Universiteit Leuven Belgium
 * All rights reserved.
 *
 * For details see the paper:
 * Herbert Bay  Tinne Tuytelaars  Luc Van Gool
 *  “SURF: Speeded Up Robust Features“
 * Proceedings of the ninth European Conference on Computer Vision May 2006
 *
 * Permission to use copy modify and distribute this software and
 * its documentation for educational research and non-commercial
 * purposes without fee and without a signed licensing agreement is
 * hereby granted provided that the above copyright notice and this
 * paragraph appear in all copies modifications and distributions.
 *
 * Any commercial use or any redistribution of this software
 * requires a license from one of the above mentioned establishments.
 *
 * For further details contact Andreas Ess (aess@vision.ee.ethz.ch).
 */

#include 
#include 

#include “imload.h“
#include “image.h“

namespace surf {

#define MAX(xy)  (((x) > (y)) ? (x) : (y))
#define MIN(xy)  (((x) < (y)) ? (x) : (y))
#define ABS(x)    (((x) > 0) ? (x) : (-(x)))

using namespace std;

void ignoreComments(ifstream& imfile) {
  char c;
  do {
    imfile >> c;
  } while (c == ‘ ‘);
  imfile.putback(c);

  imfile >> c;
  while (c == ‘#‘) {
    imfile.ignore(256 ‘\n‘);
    imfile >> c;
  }
  imfile.putback(c);
}

Image *ImLoad::readImage(const char *fn){
  ifstream imfile(fn ios::binary);
  if (!imfile.is_open()) {
    cerr << “Sorry could not open: “ << fn << endl;
    exit(0);
  }

  // Reading file header
  char P;
  char num;
  imfile >> P >> num; 
  ignoreComments(imfile);

  // Read image dimensions and extremum value
  int width height extr;
  imfile >> width;
  ignoreComments(imfile);
  imfile >> height;
  ignoreComments(imfile);
  imfile >> extr;

  // Check whether the file is OK
  if (P != ‘P‘ || num != ‘5‘ ||
      width <= 0 || height <= 0 ||
      extr > 255) {
    cerr << “Input image has to be PGM format“ << endl;
    exit(0);
  }

  // Get the image intensities and normalise to 0 - 1.
  imfile.get();
  Image *im = new Image(width height);
  for (int y = 0; y < height; y++)
    for (int x = 0; x < width; x++)
      im->setPix(x y ((double) imfile.get()) / extr);
  return im;
}

void ImLoad::saveImage(const char *fn Image *im) {
  ofstream imfile(fn ios::binary);
  if (!imfile.is_open()) {
    cerr << “Sorry could not open: “ << fn << endl;
    exit(0);
  }
  imfile << “P5“ << endl;
  imfile << im->getWidth() << “ “ << im->getHeight() << “ 255“ << endl;
  for (int y = 0; y < im->getHeight(); y++)
    for (int x = 0; x < im->getWidth(); x++)
      imfile.put((unsigned char)(im->getPix(x y) * 255));
}

}

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

     文件     723370  2008-12-20 22:38  surf\SURF Speeded Up Robust Features.pdf

     文件       1314  2006-12-20 17:28  surf\SURF-V1.0.9\SURF-V1.0.9\CHANGES

     文件       3028  2006-12-20 17:28  surf\SURF-V1.0.9\SURF-V1.0.9\fasthessian.h

     文件       2805  2006-12-20 17:28  surf\SURF-V1.0.9\SURF-V1.0.9\image.h

     文件       2966  2006-12-20 17:28  surf\SURF-V1.0.9\SURF-V1.0.9\imload.cpp

     文件       1248  2006-12-20 17:28  surf\SURF-V1.0.9\SURF-V1.0.9\imload.h

     文件       1650  2006-12-20 17:28  surf\SURF-V1.0.9\SURF-V1.0.9\ipoint.h

     文件     310376  2006-12-20 17:28  surf\SURF-V1.0.9\SURF-V1.0.9\libSurf.a

     文件     269068  2006-12-20 17:28  surf\SURF-V1.0.9\SURF-V1.0.9\libSurf.so

     文件        832  2006-12-20 17:28  surf\SURF-V1.0.9\SURF-V1.0.9\LICENSE

     文件       9860  2006-12-20 17:28  surf\SURF-V1.0.9\SURF-V1.0.9\main.cpp

     文件       1151  2006-12-20 16:39  surf\SURF-V1.0.9\SURF-V1.0.9\Makefile

     文件       7323  2006-12-20 17:28  surf\SURF-V1.0.9\SURF-V1.0.9\match.cpp

     文件       1627  2006-12-20 17:28  surf\SURF-V1.0.9\SURF-V1.0.9\os_mapping.cpp

     文件       1512  2006-12-20 17:28  surf\SURF-V1.0.9\SURF-V1.0.9\os_mapping.h

     文件     531142  2006-12-20 16:39  surf\SURF-V1.0.9\SURF-V1.0.9\out.surf

     文件       1449  2006-12-20 17:28  surf\SURF-V1.0.9\SURF-V1.0.9\README

     文件       2866  2006-12-20 17:28  surf\SURF-V1.0.9\SURF-V1.0.9\surf.h

     文件    3764310  2006-12-20 17:28  surf\SURF-V1.0.9\SURF-V1.0.9\surf.ln

     文件       4551  2006-12-20 17:28  surf\SURF-V1.0.9\SURF-V1.0.9\surflib.h

     文件    2592902  2008-12-21 12:27  surf\surf.pdf

     目录          0  2013-04-06 14:38  surf\SURF-V1.0.9\SURF-V1.0.9

     目录          0  2013-04-06 14:38  surf\SURF-V1.0.9

     目录          0  2013-04-06 14:38  surf

----------- ---------  ---------- -----  ----

              8235350                    24


评论

共有 条评论