资源简介
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
相关资源
- SVR算法程序可运行
- 计算机图形学 边填充算法实现代码
- 福建师范大学历年算法考卷
- 栈的实现及应用,六种基本算法
- Bresenham算法绘制线段并利用“橡皮筋
- 介绍几种压缩算法及《笨笨数据压缩
- 改进的BP神经网络算法
- A星算法_原理讲解_例子
- 云模型的相关算法cloud
- 旋转矩阵求欧拉角的简单算法
- 栅栏填充算法源码(VC)
- RSA算法源码
- 关联分析Apriori算法实现
- [免费]relax算法成像
- 操作系统 LRU算法 实验报告 及 程序代
- 分治法快速排序算法QuickSort C
- 现代谱估计算法 music ESPRIT 谐波分解
- MUSIC算法c 实现
- 007出纳管理系统 v7[1].5.94 算法注册机
- 克鲁斯卡尔算法C和C 实现代码
- capon波束形成算法-VC实现
- QGA 量子遗传算法
- 利用OpenGL写毛笔字算法
- 带头结点的单链表的c算法实现
- 自适应隐写算法wow
- 协同过滤算法源码
- RSA AES DES ECC加密算法源码
- 密码学课程设计:DES加密解密算法的
- 北航人工智能原理课大作业源代码,
- A*算法的2D演示(带源码)
评论
共有 条评论