OpenCV  2.4.13
Open Source Computer Vision
cv::DynamicAdaptedFeatureDetector Class Reference

an adaptively adjusting detector that iteratively detects until the desired number of features are detected. Beware that this is not thread safe - as the adjustment of parameters breaks the const of the detection routine... /TODO Make this const correct and thread safe More...

#include <features2d.hpp>

Inheritance diagram for cv::DynamicAdaptedFeatureDetector:
cv::FeatureDetector cv::Algorithm

Public Member Functions

 DynamicAdaptedFeatureDetector (const Ptr< AdjusterAdapter > &adjuster, int min_features=400, int max_features=500, int max_iters=5)
 
virtual bool empty () const
 
- Public Member Functions inherited from cv::FeatureDetector
virtual ~FeatureDetector ()
 
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
 
- Public Member Functions inherited from cv::Algorithm
 Algorithm ()
 
virtual ~Algorithm ()
 
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
 
int getInt (const string &name) const
 
double getDouble (const string &name) const
 
bool getBool (const string &name) const
 
string getString (const string &name) const
 
Mat getMat (const string &name) const
 
vector< MatgetMatVector (const string &name) const
 
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 setInt (const string &name, int value)
 
void setDouble (const string &name, double value)
 
void setBool (const string &name, bool value)
 
void setString (const string &name, const string &value)
 
void setMat (const string &name, const Mat &value)
 
void setMatVector (const string &name, const vector< Mat > &value)
 
void setAlgorithm (const string &name, const Ptr< Algorithm > &value)
 
template<typename _Tp >
void setAlgorithm (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)
 
void setInt (const char *name, int value)
 
void setDouble (const char *name, double value)
 
void setBool (const char *name, bool value)
 
void setString (const char *name, const string &value)
 
void setMat (const char *name, const Mat &value)
 
void setMatVector (const char *name, const vector< Mat > &value)
 
void setAlgorithm (const char *name, const Ptr< Algorithm > &value)
 
template<typename _Tp >
void setAlgorithm (const char *name, const Ptr< _Tp > &value)
 
string paramHelp (const string &name) const
 
int paramType (const char *name) const
 
int paramType (const string &name) const
 
void getParams (CV_OUT vector< string > &names) const
 
virtual void write (FileStorage &fs) const
 
virtual void read (const FileNode &fn)
 
virtual AlgorithmInfoinfo () const
 

Protected Member Functions

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

Additional Inherited Members

- Public Types inherited from cv::Algorithm
typedef Algorithm *(* Constructor) (void)
 
typedef int(Algorithm::* Getter) () const
 
typedef void(Algorithm::* Setter) (int)
 
- Static Public Member Functions inherited from cv::FeatureDetector
static Ptr< FeatureDetectorcreate (const string &detectorType)
 
- Static Public Member Functions inherited from cv::Algorithm
static void getList (CV_OUT vector< string > &algorithms)
 
static Ptr< Algorithm_create (const string &name)
 
template<typename _Tp >
static Ptr< _Tp > create (const string &name)
 
- Static Protected Member Functions inherited from cv::FeatureDetector
static void removeInvalidPoints (const Mat &mask, vector< KeyPoint > &keypoints)
 

Detailed Description

an adaptively adjusting detector that iteratively detects until the desired number of features are detected. Beware that this is not thread safe - as the adjustment of parameters breaks the const of the detection routine... /TODO Make this const correct and thread safe

sample usage: will create a detector that attempts to find 100 - 110 FAST Keypoints, and will at most run FAST feature detection 10 times until that number of keypoints are found Ptr<FeatureDetector> detector(new DynamicAdaptedFeatureDetector(new FastAdjuster(20,true),100, 110, 10));

Constructor & Destructor Documentation

cv::DynamicAdaptedFeatureDetector::DynamicAdaptedFeatureDetector ( const Ptr< AdjusterAdapter > &  adjuster,
int  min_features = 400,
int  max_features = 500,
int  max_iters = 5 
)
Parameters
adjusteran AdjusterAdapter that will do the detection and parameter adjustment
max_featuresthe maximum desired number of features
max_itersthe maximum number of times to try to adjust the feature detector params for the FastAdjuster this can be high, but with Star or Surf this can get time consuming
min_featuresthe minimum desired features

Member Function Documentation

virtual void cv::DynamicAdaptedFeatureDetector::detectImpl ( const Mat image,
vector< KeyPoint > &  keypoints,
const Mat mask = Mat() 
) const
protectedvirtual

Implements cv::FeatureDetector.

virtual bool cv::DynamicAdaptedFeatureDetector::empty ( ) const
virtual

Reimplemented from cv::FeatureDetector.


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