OPENCV SURF特征描述符强度

时间:2014-03-28 05:58:42

标签: opencv surf

在OPENCV SURF中,我们有什么方法可以将关键点的数量限制为100? 获得的关键点是否会根据其强度进行排序? 如何获得描述符的强度? 我正在使用cpp程序在LINUX系统中处理OPENCV。

的问候, shiksha

我的代码是:         int main(int argc,char ** argv)         {

         Mat img_1 = imread( argv[1], CV_LOAD_IMAGE_GRAYSCALE );
         Mat img_2 = imread( argv[2], CV_LOAD_IMAGE_GRAYSCALE );



          //-- Step 1: Detect the keypoints using SURF Detector
         int minHessian = 500;

         SurfFeatureDetector detector( minHessian,1,2,false,true );

         std::vector<KeyPoint> keypoints_1p;

         std::vector<KeyPoint> keypoints_2p;



         detector.detect( img_1, keypoints_1p );
         detector.detect( img_2, keypoints_2p);


          // computing descriptors
          SurfDescriptorExtractor extractor(minHessian,1,1,1,0);
          Mat descriptors1, descriptors2;

          extractor.compute(img_1, keypoints_1p, descriptors1);
          extractor.compute(img_2, keypoints_2p, descriptors2);

2 个答案:

答案 0 :(得分:1)

你最多可以获得100.我可以想象没有SIFT描述符的图像(例如一个常量图像)。有许多方法可以将关键点限制为100.有一些简单的解决方案和难以解决的问题。通过从所获得的关键点中随机选择100个关键点,您最多可以获得100个。

没有关键点的力量。你必须定义自己的力量概念。

原始Lowe论文中有各种各样的参数可以过滤关键点(其中一个是它们与图像边缘不匹配,Lowe's论文的第4.1节)。有2或3个其他参数。您需要系统地调整参数,使得您只能得到100.如果您得到的数量少于100,则过滤得越少,如果超过100,则过滤得越多。

答案 1 :(得分:1)

请参阅question here。并在那里看到我的答案如何限制关键点的数量。