• 大小: 7.18MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-24
  • 语言: 其他
  • 标签: SIFT  RANSAC  RobHess  

资源简介

调用RobHess所写实现SIFT代码,其中包含源码可以很好的学习SIFT及K-D树、BBF和RANSAC等算法的代码实现过程!

资源截图

代码片段和文件信息

/*
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** );
static int export_oxfd_features( char* struct feature* int );
static void draw_oxfd_features( IplImage* struct feature* int );
static void draw_oxfd_feature( IplImage* struct feature* CvScalar );

static int import_lowe_features( char* struct feature** );
static int export_lowe_features( char* struct feature* int );
static void draw_lowe_features( IplImage* struct feature* int );
static void draw_lowe_feature( IplImage* struct feature* CvScalar );


/*
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 features 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 );
break;
case FEATURE_LOWE:
n = import_lowe_features( filename feat );
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;
}



/*
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  ||  ! feat )
{
fprintf( stderr “Warning: no features to export %s line %d\n“
__FILE__ __LINE__ );
return 1;
}
type = feat[0].type;
switch( type )
{
case FEATURE_OXFD:
r = export_oxfd_features( filename feat n );
break;
case FEATURE_LOWE:
r = export_lowe_features( filename feat n );
break;
default:
fprintf( stderr “Warning: export_features(): unrecognized feature“ \
“type %s line %d\n“ __FILE__ __LINE__ );
return -1;
}

if( r )
fprintf(

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-03-19 22:17  SIFT_RANSAC_RobHess\
     目录           0  2017-03-19 21:07  SIFT_RANSAC_RobHess\Debug\
     文件      110080  2017-03-19 21:09  SIFT_RANSAC_RobHess\Debug\SIFT_RANSAC_RobHess.exe
     文件      653724  2017-03-19 21:09  SIFT_RANSAC_RobHess\Debug\SIFT_RANSAC_RobHess.ilk
     文件     1739776  2017-03-19 21:09  SIFT_RANSAC_RobHess\Debug\SIFT_RANSAC_RobHess.pdb
     目录           0  2017-03-19 15:55  SIFT_RANSAC_RobHess\ipch\
     目录           0  2017-03-19 19:12  SIFT_RANSAC_RobHess\ipch\sift_ransac_robhess-85cf73db\
     文件     2752512  2017-03-19 19:12  SIFT_RANSAC_RobHess\ipch\sift_ransac_robhess-85cf73db\sift_ransac_robhess-e547a7ee.ipch
     目录           0  2017-03-19 21:08  SIFT_RANSAC_RobHess\SIFT_RANSAC_RobHess\
     文件    16797696  2017-03-19 22:17  SIFT_RANSAC_RobHess\SIFT_RANSAC_RobHess.sdf
     文件         924  2017-03-19 15:55  SIFT_RANSAC_RobHess\SIFT_RANSAC_RobHess.sln
     文件       34304  2017-03-19 22:17  SIFT_RANSAC_RobHess\SIFT_RANSAC_RobHess.suo
     文件       48824  2010-05-21 12:48  SIFT_RANSAC_RobHess\SIFT_RANSAC_RobHess\beaver.png
     文件       39513  2010-05-21 12:48  SIFT_RANSAC_RobHess\SIFT_RANSAC_RobHess\beaver_xform.png
     目录           0  2017-03-19 21:09  SIFT_RANSAC_RobHess\SIFT_RANSAC_RobHess\Debug\
     文件       16094  2017-03-19 21:09  SIFT_RANSAC_RobHess\SIFT_RANSAC_RobHess\Debug\cl.command.1.tlog
     文件      106662  2017-03-19 21:09  SIFT_RANSAC_RobHess\SIFT_RANSAC_RobHess\Debug\CL.read.1.tlog
     文件       20516  2017-03-19 21:09  SIFT_RANSAC_RobHess\SIFT_RANSAC_RobHess\Debug\CL.write.1.tlog
     文件       45462  2017-03-19 20:22  SIFT_RANSAC_RobHess\SIFT_RANSAC_RobHess\Debug\imgfeatures.obj
     文件       30662  2017-03-19 20:22  SIFT_RANSAC_RobHess\SIFT_RANSAC_RobHess\Debug\kdtree.obj
     文件           2  2017-03-19 21:09  SIFT_RANSAC_RobHess\SIFT_RANSAC_RobHess\Debug\link-cvtres.read.1.tlog
     文件           2  2017-03-19 21:09  SIFT_RANSAC_RobHess\SIFT_RANSAC_RobHess\Debug\link-cvtres.write.1.tlog
     文件           2  2017-03-19 21:09  SIFT_RANSAC_RobHess\SIFT_RANSAC_RobHess\Debug\link.192240-cvtres.read.1.tlog
     文件           2  2017-03-19 21:09  SIFT_RANSAC_RobHess\SIFT_RANSAC_RobHess\Debug\link.192240-cvtres.write.1.tlog
     文件           2  2017-03-19 21:09  SIFT_RANSAC_RobHess\SIFT_RANSAC_RobHess\Debug\link.192240.read.1.tlog
     文件           2  2017-03-19 21:09  SIFT_RANSAC_RobHess\SIFT_RANSAC_RobHess\Debug\link.192240.write.1.tlog
     文件        5748  2017-03-19 21:09  SIFT_RANSAC_RobHess\SIFT_RANSAC_RobHess\Debug\link.command.1.tlog
     文件       12102  2017-03-19 21:09  SIFT_RANSAC_RobHess\SIFT_RANSAC_RobHess\Debug\link.read.1.tlog
     文件        3200  2017-03-19 21:09  SIFT_RANSAC_RobHess\SIFT_RANSAC_RobHess\Debug\link.write.1.tlog
     文件       17959  2017-03-19 17:09  SIFT_RANSAC_RobHess\SIFT_RANSAC_RobHess\Debug\match.obj
     文件       16190  2017-03-19 20:22  SIFT_RANSAC_RobHess\SIFT_RANSAC_RobHess\Debug\minpq.obj
............此处省略44个文件信息

评论

共有 条评论