grid-adapted feature detector made a proper Algorithm (ticket #1874)
authorVadim Pisarevsky <no@email>
Fri, 1 Jun 2012 09:10:53 +0000 (09:10 +0000)
committerVadim Pisarevsky <no@email>
Fri, 1 Jun 2012 09:10:53 +0000 (09:10 +0000)
modules/features2d/include/opencv2/features2d/features2d.hpp
modules/features2d/src/features2d_init.cpp

index 91795a0..3e49dfb 100644 (file)
@@ -508,12 +508,14 @@ public:
      * gridRows            Grid rows count.
      * gridCols            Grid column count.
      */
-    CV_WRAP GridAdaptedFeatureDetector( const Ptr<FeatureDetector>& detector,
+    CV_WRAP GridAdaptedFeatureDetector( const Ptr<FeatureDetector>& detector=0,
                                         int maxTotalKeypoints=1000,
                                         int gridRows=4, int gridCols=4 );
 
     // TODO implement read/write
     virtual bool empty() const;
+    
+    AlgorithmInfo* info() const;
 
 protected:
     virtual void detectImpl( const Mat& image, vector<KeyPoint>& keypoints, const Mat& mask=Mat() ) const;
index 3312d9e..6f9e07c 100644 (file)
@@ -133,15 +133,22 @@ CV_INIT_ALGORITHM(DenseFeatureDetector, "Feature2D.Dense",
                   obj.info()->addParam(obj, "varyXyStepWithScale", obj.varyXyStepWithScale);
                   obj.info()->addParam(obj, "varyImgBoundWithScale", obj.varyImgBoundWithScale));
 
+CV_INIT_ALGORITHM(GridAdaptedFeatureDetector, "Feature2D.Grid",
+                  obj.info()->addParam(obj, "detector", (Ptr<Algorithm>&)obj.detector);
+                  obj.info()->addParam(obj, "maxTotalKeypoints", obj.maxTotalKeypoints);
+                  obj.info()->addParam(obj, "gridRows", obj.gridRows);
+                  obj.info()->addParam(obj, "gridCols", obj.gridCols));
+
 bool initModule_features2d(void)
 {
     Ptr<Algorithm> brief = createBriefDescriptorExtractor(), orb = createORB(),
         star = createStarDetector(), fastd = createFastFeatureDetector(), mser = createMSER(),
-        dense = createDenseFeatureDetector(), gftt = createGFTTDetector(), harris = createHarrisDetector();
+        dense = createDenseFeatureDetector(), gftt = createGFTTDetector(),
+        harris = createHarrisDetector(), grid = createGridAdaptedFeatureDetector();
         
     return brief->info() != 0 && orb->info() != 0 && star->info() != 0 &&
         fastd->info() != 0 && mser->info() != 0 && dense->info() != 0 &&
-        gftt->info() != 0 && harris->info() != 0;
+        gftt->info() != 0 && harris->info() != 0 && grid->info() != 0;
 }
 
 }