Data Structures | Defines | Functions

sift.h File Reference

Functions for detecting SIFT image features. More...

#include "cxcore.h"

Data Structures

struct  detection_data
 holds feature data relevant to detection More...

Defines

#define SIFT_INTVLS   3
 default number of sampled intervals per octave
#define SIFT_SIGMA   1.6
 default sigma for initial gaussian smoothing
#define SIFT_CONTR_THR   0.04
 default threshold on keypoint contrast |D(x)|
#define SIFT_CURV_THR   10
 default threshold on keypoint ratio of principle curvatures
#define SIFT_IMG_DBL   1
 double image size before pyramid construction?
#define SIFT_DESCR_WIDTH   4
 default width of descriptor histogram array
#define SIFT_DESCR_HIST_BINS   8
 default number of bins per histogram in descriptor array

Functions

int sift_features (IplImage *img, struct feature **feat)
 Finds SIFT features in an image using default parameter values.
int _sift_features (IplImage *img, struct feature **feat, int intvls, double sigma, double contr_thr, int curv_thr, int img_dbl, int descr_width, int descr_hist_bins)
 Finda SIFT features in an image using user-specified parameter values.

Detailed Description

Functions for detecting SIFT image features.

For more information, refer to:

Lowe, D. Distinctive image features from scale-invariant keypoints. International Journal of Computer Vision, 60, 2 (2004), pp.91--110.

Copyright (C) 2006-2010 Rob Hess <hess@eecs.oregonstate.edu>

Note: The SIFT algorithm is patented in the United States and cannot be used in commercial products without a license from the University of British Columbia. For more information, refer to the file LICENSE.ubc that accompanied this distribution.

Version:
1.1.2-20100521

Function Documentation

int sift_features ( IplImage *  img,
struct feature **  feat 
)

Finds SIFT features in an image using default parameter values.

All detected features are stored in the array pointed to by feat.

Parameters:
img the image in which to detect features
feat a pointer to an array in which to store detected features; memory for this array is allocated by this function and must be freed by the caller using free(*feat)
Returns:
Returns the number of features stored in feat or -1 on failure
See also:
_sift_features()
int _sift_features ( IplImage *  img,
struct feature **  feat,
int  intvls,
double  sigma,
double  contr_thr,
int  curv_thr,
int  img_dbl,
int  descr_width,
int  descr_hist_bins 
)

Finda SIFT features in an image using user-specified parameter values.

All detected features are stored in the array pointed to by feat.

Parameters:
img the image in which to detect features
feat a pointer to an array in which to store detected features; memory for this array is allocated by this function and must be freed by the caller using free(*feat)
intvls the number of intervals sampled per octave of scale space
sigma the amount of Gaussian smoothing applied to each image level before building the scale space representation for an octave
contr_thr a threshold on the value of the scale space function $\left|D(\hat{x})\right|$, where $\hat{x}$ is a vector specifying feature location and scale, used to reject unstable features; assumes pixel values in the range [0, 1]
curv_thr threshold on a feature's ratio of principle curvatures used to reject features that are too edge-like
img_dbl should be 1 if image doubling prior to scale space construction is desired or 0 if not
descr_width the width, $n$, of the $n \times n$ array of orientation histograms used to compute a feature's descriptor
descr_hist_bins the number of orientations in each of the histograms in the array used to compute a feature's descriptor
Returns:
Returns the number of keypoints stored in feat or -1 on failure
See also:
sift_features()