资源简介
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
相关资源
- memetic 算法论文
- SVM算法-回归拟合程序.zip
- 角点检测与匹配
- opencv实现的sift算法源码,包含了图像
- 基于Tomasulo算法的32位RISC带Cache的流水
- 基于深度学习的图像超分辨率算法论
- 毕业设计-RSA算法(源代码+论文+ppt
- 斜抛轨迹预估算法程序
- 反距离加权插值算法
- 原生3次贝塞尔曲线算法地图
- 单片机与DSP中的基于DSP的FFT算法在无
- 遗传算法解决TSP旅行商问题程序开源
- rcada_eemd--快速eemd算法
- AES高级加密算法的verilog语言实现
- Kriging代理模型EGO算法.zip
- 三维可压缩流场MPI+OpenMP混合并行算法
- 组合趋近律滑模控制算法在APF中的应
- 基于GA-ELM的瓦斯涌出量预测
- MD5加密解密算法demo
- 论文研究 - 利用冠层高光谱窄带数据
- Js算法 zip_deflate(压缩)与zip_inflate(
- 双向不敏卡尔曼滤波的无源定位算法
- STM32 加密算法 源码代码包括AES的5种
- ACM培训——算法入门-----------
- 图片处理(源代码算法,学习非常好
- 论文研究 - Connect-4博弈对Minimax算法洞
- 易语言递归算法求阶乘源码
- 易语言递归算法算岁数源码
- 基于粒子群算法优化RBF神经网络的异
- SVPWM的原理及法则推导和控制算法详解
评论
共有 条评论