资源简介
基于SIFT算法的特征提取(VS2015+OpenCV2.4.13)
主要分为以下几个步骤:
(1) 读入两张图片并分别提取SIFT特征
(2) 利用k-d tree和BBF算法进行特征匹配查找
(3) 利用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 2018-12-18 14:52 sift_match\
目录 0 2018-12-13 20:09 sift_match\.vs\
目录 0 2018-12-13 20:09 sift_match\.vs\sift_process\
目录 0 2018-12-13 20:09 sift_match\.vs\sift_process\v14\
文件 49664 2018-12-18 14:52 sift_match\.vs\sift_process\v14\.suo
目录 0 2018-12-13 20:11 sift_match\sift_process\
目录 0 2018-12-18 14:52 sift_match\sift_process\match\
文件 48824 2010-05-21 12:48 sift_match\sift_process\match\beaver.png
文件 39513 2010-05-21 12:48 sift_match\sift_process\match\beaver_xform.png
文件 14956 2010-05-21 14:50 sift_match\sift_process\match\imgfeatures.c
文件 3861 2010-05-21 14:50 sift_match\sift_process\match\imgfeatures.h
文件 15666 2010-05-21 14:50 sift_match\sift_process\match\kdtree.c
文件 3681 2010-05-21 14:50 sift_match\sift_process\match\kdtree.h
文件 3154 2018-12-13 19:33 sift_match\sift_process\match\match.c
文件 5098 2010-05-21 14:50 sift_match\sift_process\match\minpq.c
文件 2096 2010-05-21 14:50 sift_match\sift_process\match\minpq.h
文件 36594 2010-05-21 14:50 sift_match\sift_process\match\sift.c
文件 5093 2018-12-13 17:05 sift_match\sift_process\match\sift.h
文件 7553 2018-12-13 19:30 sift_match\sift_process\match\utils.c
文件 5802 2018-12-13 17:03 sift_match\sift_process\match\utils.h
文件 18260 2010-05-21 14:50 sift_match\sift_process\match\xform.c
文件 6596 2010-05-21 14:50 sift_match\sift_process\match\xform.h
目录 0 2018-12-13 20:12 sift_match\sift_process\Release\
文件 137114 2018-12-13 20:27 sift_match\sift_process\Release\imgfeatures.obj
文件 132122 2018-12-13 20:27 sift_match\sift_process\Release\kdtree.obj
文件 122830 2018-12-13 20:27 sift_match\sift_process\Release\match.obj
文件 120300 2018-12-13 20:27 sift_match\sift_process\Release\minpq.obj
文件 160458 2018-12-13 20:27 sift_match\sift_process\Release\sift.obj
文件 2109 2018-12-13 20:27 sift_match\sift_process\Release\sift_process.log
目录 0 2018-12-13 20:27 sift_match\sift_process\Release\sift_process.tlog\
文件 11278 2018-12-13 20:27 sift_match\sift_process\Release\sift_process.tlog\CL.command.1.tlog
............此处省略15个文件信息
相关资源
- 基于ORB算法的特征提取和匹配(VS20
- 双目立体匹配测试数据集Middlebury St
- opencv双目通过特征提取恢复深度
- 相机标定单目、双目.zip
- 高质量双目标定图片初学练习使用
- SIFT+RANSAC识别物体,并标注边界
- siftgpu调试之后的版本,经测试可以直
- 基于SIFT的目标跟踪源码
- sift_vs 源代码
- 计算机双目立体视觉-高宏伟著
- 双目标定后的三维重建
- Computer-vision-for-visual-effects pdf
- 武汉大学摄影测量 图像理解与计算机
- opencv双目视觉棋盘格标定,特征匹配
- cvMatchShapes
- SIFT特征点匹配代码
- 双目图像集
- 基于SIFT特征的全景图像拼接(Qt)
- OPENCV实现ORB/SURF/SIFT + RANSAC 图像自动拼
- 双目立体匹配测试数据集及视差图
- 用两个摄像头实现,双目标定,双目
- Stereo Vision Algorithms and Applications:双目
- SIFT特征提取3篇最经典文献
- 双目数据集Middlebury Stereo Data2014一
- VS2017+OpenCV3.3基于SGBM算法的双目立体视
- SPSS R插件及PS Matching插件
- 利用opencv进行双目图像采集,并进行
- 基于双目立体视觉技术的成熟番茄识
- sift算法fpga实现
- SIFT算法实现及代码详解
评论
共有 条评论