Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
cv::SIFT Class Reference

SIFT implementation. More...

#include <features2d.hpp>

Inherits cv::Feature2D.

Public Types

typedef Algorithm *(* Constructor )(void)
 
typedef int(Algorithm::* Getter )() const
 
typedef void(Algorithm::* Setter )(int)
 

Public Member Functions

CV_WRAP SIFT (int nfeatures=0, int nOctaveLayers=3, double contrastThreshold=0.04, double edgeThreshold=10, double sigma=1.6)
 
CV_WRAP int descriptorSize () const
 returns the descriptor size in floats (128) More...
 
CV_WRAP int descriptorType () const
 returns the descriptor type More...
 
void operator() (InputArray img, InputArray mask, vector< KeyPoint > &keypoints) const
 finds the keypoints using SIFT algorithm More...
 
void operator() (InputArray img, InputArray mask, vector< KeyPoint > &keypoints, OutputArray descriptors, bool useProvidedKeypoints=false) const
 
AlgorithmInfoinfo () const
 
void buildGaussianPyramid (const Mat &base, vector< Mat > &pyr, int nOctaves) const
 
void buildDoGPyramid (const vector< Mat > &pyr, vector< Mat > &dogpyr) const
 
void findScaleSpaceExtrema (const vector< Mat > &gauss_pyr, const vector< Mat > &dog_pyr, vector< KeyPoint > &keypoints) const
 
 CV_WRAP_AS (detectAndCompute) virtual void operator()(InputArray image
 
CV_WRAP void compute (const Mat &image, CV_OUT CV_IN_OUT std::vector< KeyPoint > &keypoints, CV_OUT Mat &descriptors) const
 
void compute (const vector< Mat > &images, vector< vector< KeyPoint > > &keypoints, vector< Mat > &descriptors) const
 
CV_WRAP void detect (const Mat &image, CV_OUT vector< KeyPoint > &keypoints, const Mat &mask=Mat()) const
 
void detect (const vector< Mat > &images, vector< vector< KeyPoint > > &keypoints, const vector< Mat > &masks=vector< Mat >()) const
 
virtual CV_WRAP bool empty () const
 
virtual CV_WRAP bool empty () const
 
string name () const
 
template<typename _Tp >
ParamType< _Tp >::member_type get (const string &name) const
 
template<typename _Tp >
ParamType< _Tp >::member_type get (const char *name) const
 
CV_WRAP int getInt (const string &name) const
 
CV_WRAP double getDouble (const string &name) const
 
CV_WRAP bool getBool (const string &name) const
 
CV_WRAP string getString (const string &name) const
 
CV_WRAP Mat getMat (const string &name) const
 
CV_WRAP vector< MatgetMatVector (const string &name) const
 
CV_WRAP Ptr< AlgorithmgetAlgorithm (const string &name) const
 
void set (const string &name, int value)
 
void set (const string &name, double value)
 
void set (const string &name, bool value)
 
void set (const string &name, const string &value)
 
void set (const string &name, const Mat &value)
 
void set (const string &name, const vector< Mat > &value)
 
void set (const string &name, const Ptr< Algorithm > &value)
 
template<typename _Tp >
void set (const string &name, const Ptr< _Tp > &value)
 
void set (const char *name, int value)
 
void set (const char *name, double value)
 
void set (const char *name, bool value)
 
void set (const char *name, const string &value)
 
void set (const char *name, const Mat &value)
 
void set (const char *name, const vector< Mat > &value)
 
void set (const char *name, const Ptr< Algorithm > &value)
 
template<typename _Tp >
void set (const char *name, const Ptr< _Tp > &value)
 
CV_WRAP void setInt (const string &name, int value)
 
void setInt (const char *name, int value)
 
CV_WRAP void setDouble (const string &name, double value)
 
void setDouble (const char *name, double value)
 
CV_WRAP void setBool (const string &name, bool value)
 
void setBool (const char *name, bool value)
 
CV_WRAP void setString (const string &name, const string &value)
 
void setString (const char *name, const string &value)
 
CV_WRAP void setMat (const string &name, const Mat &value)
 
void setMat (const char *name, const Mat &value)
 
CV_WRAP void setMatVector (const string &name, const vector< Mat > &value)
 
void setMatVector (const char *name, const vector< Mat > &value)
 
CV_WRAP void setAlgorithm (const string &name, const Ptr< Algorithm > &value)
 
template<typename _Tp >
void setAlgorithm (const string &name, const Ptr< _Tp > &value)
 
void setAlgorithm (const char *name, const Ptr< Algorithm > &value)
 
template<typename _Tp >
void setAlgorithm (const char *name, const Ptr< _Tp > &value)
 
CV_WRAP string paramHelp (const string &name) const
 
int paramType (const char *name) const
 
CV_WRAP int paramType (const string &name) const
 
CV_WRAP void getParams (CV_OUT vector< string > &names) const
 
virtual void write (FileStorage &fs) const
 
virtual void read (const FileNode &fn)
 

Static Public Member Functions

static CV_WRAP Ptr< Feature2Dcreate (const string &name)
 
static CV_WRAP void getList (CV_OUT vector< string > &algorithms)
 
static CV_WRAP Ptr< Algorithm_create (const string &name)
 

Public Attributes

InputArray mask
 
InputArray CV_OUT vector
< KeyPoint > & 
keypoints
 
InputArray CV_OUT vector
< KeyPoint > OutputArray 
descriptors
 
InputArray CV_OUT vector
< KeyPoint > OutputArray bool 
useProvidedKeypoints =false ) const = 0
 

Protected Member Functions

void detectImpl (const Mat &image, vector< KeyPoint > &keypoints, const Mat &mask=Mat()) const
 
void computeImpl (const Mat &image, vector< KeyPoint > &keypoints, Mat &descriptors) const
 

Static Protected Member Functions

static void removeInvalidPoints (const Mat &mask, vector< KeyPoint > &keypoints)
 
static void removeBorderKeypoints (vector< KeyPoint > &keypoints, Size imageSize, int borderSize)
 

Protected Attributes

CV_PROP_RW int nfeatures
 
CV_PROP_RW int nOctaveLayers
 
CV_PROP_RW double contrastThreshold
 
CV_PROP_RW double edgeThreshold
 
CV_PROP_RW double sigma
 

Detailed Description

SIFT implementation.

The class implements SIFT algorithm by D. Lowe.

Member Typedef Documentation

typedef Algorithm*(* cv::Algorithm::Constructor)(void)
inherited
typedef int(Algorithm::* cv::Algorithm::Getter)() const
inherited
typedef void(Algorithm::* cv::Algorithm::Setter)(int)
inherited

Constructor & Destructor Documentation

CV_WRAP cv::SIFT::SIFT ( int  nfeatures = 0,
int  nOctaveLayers = 3,
double  contrastThreshold = 0.04,
double  edgeThreshold = 10,
double  sigma = 1.6 
)
explicit

Member Function Documentation

CV_WRAP int cv::SIFT::descriptorSize ( ) const
virtual

returns the descriptor size in floats (128)

Implements cv::DescriptorExtractor.

CV_WRAP int cv::SIFT::descriptorType ( ) const
virtual

returns the descriptor type

Implements cv::DescriptorExtractor.

void cv::SIFT::operator() ( InputArray  img,
InputArray  mask,
vector< KeyPoint > &  keypoints 
) const

finds the keypoints using SIFT algorithm

void cv::SIFT::operator() ( InputArray  img,
InputArray  mask,
vector< KeyPoint > &  keypoints,
OutputArray  descriptors,
bool  useProvidedKeypoints = false 
) const

finds the keypoints and computes descriptors for them using SIFT algorithm. Optionally it can compute descriptors for the user-provided keypoints

AlgorithmInfo* cv::SIFT::info ( ) const
virtual

Reimplemented from cv::Algorithm.

void cv::SIFT::buildGaussianPyramid ( const Mat base,
vector< Mat > &  pyr,
int  nOctaves 
) const
void cv::SIFT::buildDoGPyramid ( const vector< Mat > &  pyr,
vector< Mat > &  dogpyr 
) const
void cv::SIFT::findScaleSpaceExtrema ( const vector< Mat > &  gauss_pyr,
const vector< Mat > &  dog_pyr,
vector< KeyPoint > &  keypoints 
) const
void cv::SIFT::detectImpl ( const Mat image,
vector< KeyPoint > &  keypoints,
const Mat mask = Mat() 
) const
protectedvirtual

Implements cv::FeatureDetector.

void cv::SIFT::computeImpl ( const Mat image,
vector< KeyPoint > &  keypoints,
Mat descriptors 
) const
protectedvirtual
cv::Feature2D::CV_WRAP_AS ( detectAndCompute  )
inherited
CV_WRAP void cv::Feature2D::compute ( const Mat image,
CV_OUT CV_IN_OUT std::vector< KeyPoint > &  keypoints,
CV_OUT Mat descriptors 
) const
inherited
void cv::DescriptorExtractor::compute ( const vector< Mat > &  images,
vector< vector< KeyPoint > > &  keypoints,
vector< Mat > &  descriptors 
) const
inherited
static CV_WRAP Ptr<Feature2D> cv::Feature2D::create ( const string name)
staticinherited
CV_WRAP void cv::FeatureDetector::detect ( const Mat image,
CV_OUT vector< KeyPoint > &  keypoints,
const Mat mask = Mat() 
) const
inherited
void cv::FeatureDetector::detect ( const vector< Mat > &  images,
vector< vector< KeyPoint > > &  keypoints,
const vector< Mat > &  masks = vector< Mat >() 
) const
inherited
virtual CV_WRAP bool cv::FeatureDetector::empty ( ) const
virtualinherited
virtual CV_WRAP bool cv::DescriptorExtractor::empty ( ) const
virtualinherited
static void cv::FeatureDetector::removeInvalidPoints ( const Mat mask,
vector< KeyPoint > &  keypoints 
)
staticprotectedinherited
string cv::Algorithm::name ( ) const
inherited
template<typename _Tp >
ParamType< _Tp >::member_type cv::Algorithm::get ( const string name) const
inherited
template<typename _Tp >
ParamType< _Tp >::member_type cv::Algorithm::get ( const char *  name) const
inherited
CV_WRAP int cv::Algorithm::getInt ( const string name) const
inherited
CV_WRAP double cv::Algorithm::getDouble ( const string name) const
inherited
CV_WRAP bool cv::Algorithm::getBool ( const string name) const
inherited
CV_WRAP string cv::Algorithm::getString ( const string name) const
inherited
CV_WRAP Mat cv::Algorithm::getMat ( const string name) const
inherited
CV_WRAP vector<Mat> cv::Algorithm::getMatVector ( const string name) const
inherited
CV_WRAP Ptr<Algorithm> cv::Algorithm::getAlgorithm ( const string name) const
inherited
void cv::Algorithm::set ( const string name,
int  value 
)
inherited
void cv::Algorithm::set ( const string name,
double  value 
)
inherited
void cv::Algorithm::set ( const string name,
bool  value 
)
inherited
void cv::Algorithm::set ( const string name,
const string value 
)
inherited
void cv::Algorithm::set ( const string name,
const Mat value 
)
inherited
void cv::Algorithm::set ( const string name,
const vector< Mat > &  value 
)
inherited
void cv::Algorithm::set ( const string name,
const Ptr< Algorithm > &  value 
)
inherited
template<typename _Tp >
void cv::Algorithm::set ( const string name,
const Ptr< _Tp > &  value 
)
inherited
void cv::Algorithm::set ( const char *  name,
int  value 
)
inherited
void cv::Algorithm::set ( const char *  name,
double  value 
)
inherited
void cv::Algorithm::set ( const char *  name,
bool  value 
)
inherited
void cv::Algorithm::set ( const char *  name,
const string value 
)
inherited
void cv::Algorithm::set ( const char *  name,
const Mat value 
)
inherited
void cv::Algorithm::set ( const char *  name,
const vector< Mat > &  value 
)
inherited
void cv::Algorithm::set ( const char *  name,
const Ptr< Algorithm > &  value 
)
inherited
template<typename _Tp >
void cv::Algorithm::set ( const char *  name,
const Ptr< _Tp > &  value 
)
inherited
CV_WRAP void cv::Algorithm::setInt ( const string name,
int  value 
)
inherited
void cv::Algorithm::setInt ( const char *  name,
int  value 
)
inherited
CV_WRAP void cv::Algorithm::setDouble ( const string name,
double  value 
)
inherited
void cv::Algorithm::setDouble ( const char *  name,
double  value 
)
inherited
CV_WRAP void cv::Algorithm::setBool ( const string name,
bool  value 
)
inherited
void cv::Algorithm::setBool ( const char *  name,
bool  value 
)
inherited
CV_WRAP void cv::Algorithm::setString ( const string name,
const string value 
)
inherited
void cv::Algorithm::setString ( const char *  name,
const string value 
)
inherited
CV_WRAP void cv::Algorithm::setMat ( const string name,
const Mat value 
)
inherited
void cv::Algorithm::setMat ( const char *  name,
const Mat value 
)
inherited
CV_WRAP void cv::Algorithm::setMatVector ( const string name,
const vector< Mat > &  value 
)
inherited
void cv::Algorithm::setMatVector ( const char *  name,
const vector< Mat > &  value 
)
inherited
CV_WRAP void cv::Algorithm::setAlgorithm ( const string name,
const Ptr< Algorithm > &  value 
)
inherited
template<typename _Tp >
void cv::Algorithm::setAlgorithm ( const string name,
const Ptr< _Tp > &  value 
)
inherited
void cv::Algorithm::setAlgorithm ( const char *  name,
const Ptr< Algorithm > &  value 
)
inherited
template<typename _Tp >
void cv::Algorithm::setAlgorithm ( const char *  name,
const Ptr< _Tp > &  value 
)
inherited
CV_WRAP string cv::Algorithm::paramHelp ( const string name) const
inherited
int cv::Algorithm::paramType ( const char *  name) const
inherited
CV_WRAP int cv::Algorithm::paramType ( const string name) const
inherited
CV_WRAP void cv::Algorithm::getParams ( CV_OUT vector< string > &  names) const
inherited
virtual void cv::Algorithm::write ( FileStorage fs) const
virtualinherited
virtual void cv::Algorithm::read ( const FileNode fn)
virtualinherited
static CV_WRAP void cv::Algorithm::getList ( CV_OUT vector< string > &  algorithms)
staticinherited
static CV_WRAP Ptr<Algorithm> cv::Algorithm::_create ( const string name)
staticinherited
static void cv::DescriptorExtractor::removeBorderKeypoints ( vector< KeyPoint > &  keypoints,
Size  imageSize,
int  borderSize 
)
staticprotectedinherited

Member Data Documentation

CV_PROP_RW int cv::SIFT::nfeatures
protected
CV_PROP_RW int cv::SIFT::nOctaveLayers
protected
CV_PROP_RW double cv::SIFT::contrastThreshold
protected
CV_PROP_RW double cv::SIFT::edgeThreshold
protected
CV_PROP_RW double cv::SIFT::sigma
protected
InputArray cv::Feature2D::mask
inherited
InputArray CV_OUT vector<KeyPoint>& cv::Feature2D::keypoints
inherited
InputArray CV_OUT vector<KeyPoint> OutputArray cv::Feature2D::descriptors
inherited
InputArray CV_OUT vector<KeyPoint> OutputArray bool cv::Feature2D::useProvidedKeypoints =false ) const = 0
inherited

The documentation for this class was generated from the following file: