资源简介

基于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个文件信息

评论

共有 条评论