⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imgfeatures.h

📁 基于SIFT快速匹配算法
💻 H
字号:
/**@fileFunctions and structures for dealing with image featuresCopyright (C) 2006  Rob Hess <hess@eecs.oregonstate.edu>@version 1.1.1-20070330*/#ifndef IMGFEATURES_H#define IMGFEATURES_H#include "cxcore.h"#ifdef __cplusplus extern "C" { #endif /** FEATURE_OXFD <BR> FEATURE_LOWE */enum feature_type{	FEATURE_OXFD,	FEATURE_LOWE,};/** FEATURE_FWD_MATCH <BR> FEATURE_BCK_MATCH <BR> FEATURE_MDL_MATCH */enum feature_match_type{	FEATURE_FWD_MATCH,	FEATURE_BCK_MATCH,	FEATURE_MDL_MATCH,};/* colors in which to display different feature types */#define FEATURE_OXFD_COLOR CV_RGB(255,255,0)#define FEATURE_LOWE_COLOR CV_RGB(255,0,255)/** max feature descriptor length */#define FEATURE_MAX_D 128/**Structure to represent an affine invariant image feature.  The fieldsx, y, a, b, c represent the affine region around the feature:a(x-u)(x-u) + 2b(x-u)(y-v) + c(y-v)(y-v) = 1*/struct feature{	double x;                      /**< x coord */	double y;                      /**< y coord */	double a;                      /**< Oxford-type affine region parameter */	double b;                      /**< Oxford-type affine region parameter */	double c;                      /**< Oxford-type affine region parameter */	double scl;                    /**< scale of a Lowe-style feature */	double ori;                    /**< orientation of a Lowe-style feature */	int d;                         /**< descriptor length */	double descr[FEATURE_MAX_D];   /**< descriptor */	int type;                      /**< feature type, OXFD or LOWE */	int pclass;                     /**< all-purpose feature class */	struct feature* fwd_match;     /**< matching feature from forward image */	struct feature* bck_match;     /**< matching feature from backmward image */	struct feature* mdl_match;     /**< matching feature from model */	CvPoint2D64f img_pt;           /**< location in image */	CvPoint2D64f mdl_pt;           /**< location in model */	void* feature_data;            /**< user-definable data */};/**Reads image features from file.  The file should be formatted as fromthe code provided by the Visual Geometry Group at Oxford or from thecode provided by David Lowe.@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	<BR><BR>	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 imported features@return Returns the number of features imported from filename or -1 on error*/extern  int import_features( char* filename, int type, struct feature** feat );/**Exports a feature set to a file formatted depending on the type offeatures, 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*/extern  int export_features( char* filename, struct feature* feat, int n );/**Displays a set of features on an image@param img image on which to display features@param feat array of Oxford-type features@param n number of features*/extern  void draw_features( IplImage* img, struct feature* feat, int n );/**Calculates the squared Euclidian distance between two feature descriptors.@param f1 first feature@param f2 second feature@return Returns the squared Euclidian distance between the descriptors of\a f1 and \a f2.*/extern double descr_dist_sq( struct feature* f1, struct feature* f2 );#ifdef __cplusplus }#endif #endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -