extended the constructor parameters of AdjusterAdapter's inheritors
authorMaria Dimashova <no@email>
Wed, 11 May 2011 12:13:58 +0000 (12:13 +0000)
committerMaria Dimashova <no@email>
Wed, 11 May 2011 12:13:58 +0000 (12:13 +0000)
modules/features2d/include/opencv2/features2d/features2d.hpp
modules/features2d/src/dynamic.cpp

index 6383361..489bf8d 100644 (file)
@@ -1550,7 +1550,7 @@ public:
     /**\param init_thresh the initial threshold to start with, default = 20
      * \param nonmax whether to use non max or not for fast feature detection
      */
-    FastAdjuster(int init_thresh = 20, bool nonmax = true);
+    FastAdjuster(int init_thresh=20, bool nonmax=true, int min_thresh=1, int max_thresh=200);
 
     virtual void tooFew(int min, int n_detected);
     virtual void tooMany(int max, int n_detected);
@@ -1563,7 +1563,7 @@ protected:
 
     int thresh_;
     bool nonmax_;
-    int init_thresh_;
+    int init_thresh_, min_thresh_, max_thresh_;
 };
 
 
@@ -1573,7 +1573,7 @@ protected:
 class CV_EXPORTS StarAdjuster: public AdjusterAdapter
 {
 public:
-    StarAdjuster(double initial_thresh = 30.0);
+    StarAdjuster(double initial_thresh=30.0, double min_thresh=2., double max_thresh=200.);
 
     virtual void tooFew(int min, int n_detected);
     virtual void tooMany(int max, int n_detected);
@@ -1584,14 +1584,14 @@ public:
 protected:
     virtual void detectImpl( const Mat& image, vector<KeyPoint>& keypoints, const Mat& mask=Mat() ) const;
 
-    double thresh_, init_thresh_;
+    double thresh_, init_thresh_, min_thresh_, max_thresh_;
     CvStarDetectorParams params_; //todo use these instead of thresh_
 };
 
 class CV_EXPORTS SurfAdjuster: public AdjusterAdapter
 {
 public:
-    SurfAdjuster( double initial_thresh=400.f );
+    SurfAdjuster( double initial_thresh=400.f, double min_thresh=2, double max_thresh=1000 );
 
     virtual void tooFew(int min, int n_detected);
     virtual void tooMany(int max, int n_detected);
@@ -1602,7 +1602,7 @@ public:
 protected:
     virtual void detectImpl( const Mat& image, vector<KeyPoint>& keypoints, const Mat& mask=Mat() ) const;
 
-    double thresh_, init_thresh_;
+    double thresh_, init_thresh_, min_thresh_, max_thresh_;
 };
 
 CV_EXPORTS Mat windowedMatchingMask( const vector<KeyPoint>& keypoints1, const vector<KeyPoint>& keypoints2,
index 9495eb6..6b2511c 100644 (file)
@@ -93,8 +93,9 @@ void DynamicAdaptedFeatureDetector::detectImpl(const Mat& image, vector<KeyPoint
 
 }
 
-FastAdjuster::FastAdjuster(int init_thresh, bool nonmax) :
-    thresh_(init_thresh), nonmax_(nonmax), init_thresh_(init_thresh)
+FastAdjuster::FastAdjuster( int init_thresh, bool nonmax, int min_thresh, int max_thresh ) :
+    thresh_(init_thresh), nonmax_(nonmax), init_thresh_(init_thresh),
+    min_thresh_(min_thresh), max_thresh_(max_thresh)
 {}
 
 void FastAdjuster::detectImpl(const Mat& image, vector<KeyPoint>& keypoints, const Mat& mask) const
@@ -118,17 +119,18 @@ void FastAdjuster::tooMany(int, int)
 //a useful point
 bool FastAdjuster::good() const
 {
-    return (thresh_ > 1) && (thresh_ < 200);
+    return (thresh_ > min_thresh_) && (thresh_ < max_thresh_);
 }
 
 Ptr<AdjusterAdapter> FastAdjuster::clone() const
 {
-    Ptr<AdjusterAdapter> cloned_obj = new FastAdjuster( init_thresh_, nonmax_ );
+    Ptr<AdjusterAdapter> cloned_obj = new FastAdjuster( init_thresh_, nonmax_, min_thresh_, max_thresh_ );
     return cloned_obj;
 }
 
-StarAdjuster::StarAdjuster(double initial_thresh) :
-    thresh_(initial_thresh), init_thresh_(initial_thresh)
+StarAdjuster::StarAdjuster(double initial_thresh, double min_thresh, double max_thresh) :
+    thresh_(initial_thresh), init_thresh_(initial_thresh),
+    min_thresh_(min_thresh), max_thresh_(max_thresh)
 {}
 
 void StarAdjuster::detectImpl(const Mat& image, vector<KeyPoint>& keypoints, const Mat& mask) const
@@ -151,17 +153,18 @@ void StarAdjuster::tooMany(int, int)
 
 bool StarAdjuster::good() const
 {
-    return (thresh_ > 2) && (thresh_ < 200);
+    return (thresh_ > min_thresh_) && (thresh_ < max_thresh_);
 }
 
 Ptr<AdjusterAdapter> StarAdjuster::clone() const
 {
-    Ptr<AdjusterAdapter> cloned_obj = new StarAdjuster( init_thresh_ );
+    Ptr<AdjusterAdapter> cloned_obj = new StarAdjuster( init_thresh_, min_thresh_, max_thresh_ );
     return cloned_obj;
 }
 
-SurfAdjuster::SurfAdjuster( double initial_thresh ) :
-    thresh_(initial_thresh), init_thresh_(initial_thresh)
+SurfAdjuster::SurfAdjuster( double initial_thresh, double min_thresh, double max_thresh ) :
+    thresh_(initial_thresh), init_thresh_(initial_thresh),
+    min_thresh_(min_thresh), max_thresh_(max_thresh)
 {}
 
 void SurfAdjuster::detectImpl(const Mat& image, vector<KeyPoint>& keypoints, const cv::Mat& mask) const
@@ -186,12 +189,12 @@ void SurfAdjuster::tooMany(int, int)
 //a useful point
 bool SurfAdjuster::good() const
 {
-    return (thresh_ > 2) && (thresh_ < 1000);
+    return (thresh_ > min_thresh_) && (thresh_ < max_thresh_);
 }
 
 Ptr<AdjusterAdapter> SurfAdjuster::clone() const
 {
-    Ptr<AdjusterAdapter> cloned_obj = new SurfAdjuster( init_thresh_ );
+    Ptr<AdjusterAdapter> cloned_obj = new SurfAdjuster( init_thresh_, min_thresh_, max_thresh_ );
     return cloned_obj;
 }