资源简介
基于SIFT特征的全景图像拼接(Qt)
主要分为以下几个步骤:
(1) 读入两张图片并分别提取SIFT特征
(2) 利用k-d tree和BBF算法进行特征匹配查找
(3) 利用RANSAC算法筛选匹配点并计算变换矩阵
(3) 图像融合
运行前请自己在pro文件中配置OpenCV的头文件和lib文件目录
详情查看博客:
http://blog.csdn.net/masikkk/article/details/9246493
代码片段和文件信息
/*
Functions and structures for dealing with image features
Copyright (C) 2006-2010 Rob Hess
@version 1.1.2-20100521
*/
/*
此文件中有几个函数的实现:特征点的导入导出,特征点的绘制
*/
#include “utils.h“
#include “imgfeatures.h“
#include
#include
/************************ 未暴露接口的一些本地函数的声明 **************************/
static int import_oxfd_features( char* struct feature** );//导入OXFD格式特征点
static int export_oxfd_features( char* struct feature* int );//导出OXFD格式特征点
static void draw_oxfd_features( IplImage* struct feature* int );//画OXFD格式特征点
static void draw_oxfd_feature( IplImage* struct feature* CvScalar );//画单个点
static int import_lowe_features( char* struct feature** );//导入LOWE格式特征点
static int export_lowe_features( char* struct feature* int );//导出LOWE格式特征点
static void draw_lowe_features( IplImage* struct feature* int );//画LOWE格式特征点
static void draw_lowe_feature( IplImage* struct feature* CvScalar );//画单个点
/*从文件中读入图像特征
文件中的特征点格式必须是FEATURE_OXFD或FEATURE_LOWE格式
参数:
filename:文件名
type:特征点类型
feat:用来存储特征点的feature数组的指针
返回值:导入的特征点个数
*/
/*
Reads image features from file. The file should be formatted as from
the code provided by the Visual Geometry Group at Oxford:
@param filename location of a file containing image features
@param type determines how features are input. If \a type is FEATURE_OXFD
the input file is treated as if it is from the code provided by the VGG
at Oxford:http://www.robots.ox.ac.uk:5000/~vgg/research/affine/index.html
If \a type is FEATURE_LOWE the input file is treated as if it is from
David Lowe‘s SIFT code:http://www.cs.ubc.ca/~lowe/keypoints
@param feat pointer to an array in which to store features
@return Returns the number of features imported from filename or -1 on error
*/
int import_features( char* filename int type struct feature** feat )
{
int n;
//根据特征点类型,调用不同的函数完成导入功能
switch( type )
{
case FEATURE_OXFD:
n = import_oxfd_features( filename feat );//调用函数,导入OXFD格式特征点
break;
case FEATURE_LOWE:
n = import_lowe_features( filename feat );//调用函数,导入LOWE格式特征点
break;
default: //特征点格式无法识别
fprintf( stderr “Warning: import_features(): unrecognized feature“ \
“type %s line %d\n“ __FILE__ __LINE__ );
return -1;
}
//导入失败
if( n == -1 )
fprintf( stderr “Warning: unable to import features from %s“ \
“ %s line %d\n“ filename __FILE__ __LINE__ );
return n;
}
/*导出feature数组到文件
参数:
filename:文件名
feat:特征数组
n:特征点个数
返回值:0:成功;1:失败
*/
/*
Exports a feature set to a file formatted depending on the type of
features as specified in the feature struct‘s type field.
@param filename name of file to which to export features
@param feat feature array
@param n number of features
@return Returns 0 on success or 1 on error
*/
int export_features( char* filename struct feature* feat int n )
{
int r type;
//参数合法性检查
if( n <= 0 ||
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1059446 2013-06-29 12:50 sift_match\debug\feature1.txt
文件 1411873 2013-06-29 12:50 sift_match\debug\feature2.txt
文件 42899 2013-06-29 19:57 sift_match\debug\imgfeatures.o
文件 37720 2013-06-30 16:39 sift_match\debug\kdtree.o
文件 195182 2013-07-04 19:15 sift_match\debug\main.o
文件 30526 2013-06-29 19:57 sift_match\debug\minpq.o
文件 3384 2013-07-04 19:15 sift_match\debug\moc_siftmatch.cpp
文件 206989 2013-07-04 19:15 sift_match\debug\moc_siftmatch.o
文件 62221 2013-06-30 16:39 sift_match\debug\sift.o
文件 427254 2013-07-04 21:40 sift_match\debug\siftmatch.o
文件 4829730 2013-07-04 21:40 sift_match\debug\sift_match.exe
文件 37883 2013-06-29 19:57 sift_match\debug\utils.o
文件 39402 2013-06-30 16:39 sift_match\debug\xform.o
文件 332835 2013-07-04 21:32 sift_match\feature1.txt
文件 286171 2013-07-04 21:32 sift_match\feature2.txt
文件 19583 2013-06-29 19:43 sift_match\imgfeatures.c
文件 6003 2013-06-29 19:56 sift_match\imgfeatures.h
文件 23338 2013-06-29 20:12 sift_match\kdtree.c
文件 4508 2013-06-29 19:56 sift_match\kdtree.h
文件 272 2013-06-18 21:06 sift_match\main.cpp
文件 6152 2013-06-06 12:25 sift_match\Makefile
文件 7426 2013-06-06 12:25 sift_match\Makefile.Debug
文件 7547 2013-06-06 12:25 sift_match\Makefile.Release
文件 5329 2013-06-14 10:33 sift_match\minpq.c
文件 2579 2013-06-29 19:56 sift_match\minpq.h
文件 60108 2013-06-29 11:06 sift_match\sift.c
文件 7676 2013-06-30 16:03 sift_match\sift.h
文件 22462 2013-07-04 21:39 sift_match\siftmatch.cpp
文件 2184 2013-07-04 19:15 sift_match\siftmatch.h
文件 4143 2013-07-04 21:40 sift_match\siftmatch.ui
............此处省略175个文件信息
- 上一篇:文本挖掘技术
- 下一篇:模拟电子技术(童诗白_第三版).
相关资源
- 18年最新立体图像拼接
- 眼底图像拼接
- OPENCV实现ORB/SURF/SIFT + RANSAC 图像自动拼
- OpenCvSharp 读摄像头及图像拼接功能
- SIFT特征提取3篇最经典文献
- 车载全景环视系统相关文档
- ENVI遥感图像进行图像拼接的多光谱遥
- OpenCV图像拼接原理解析和分模块实现
- 基于机器视觉的全景图像拼接
- 多光谱图像与全色图像的像素级融合
- sift算法fpga实现
- SIFT算法实现及代码详解
- 论文研究-SIFT和改进的RANSAC算法在图像
- opencv实现的SIFT特征提取与匹配算法
- 基 于 SI FT特 征 的 图 像 自 动 拼 接
- 点云配准SIFT算法
- SIFT+LBP算法实现代码
- 光流图像配准
- OpenCV实现相位相关图像配准
- 老外图像配准的ppt - lecture02
- 总结-图像配准算法
- 基于fft的图像配准资料
- 图像配准技术
- 图像拼接技术的由来、现状以及拼接
- 基于halcon实现图像拼接技术
- 使用GPU加速的SIFT算法
- 全景图像拼接技术研究现状综述
- ASIFT算法实现
- 基于fast的图像拼接
- 图像融合过程中的图像配准代码
评论
共有 条评论