与openCV Java中的SIFT相比,AKAZE没有产生良好的效果

时间:2016-06-29 14:39:17

标签: java opencv feature-detection sift

我是计算机视觉领域的新手,现在我正在开展一个项目来比较两个图像,看看是否有匹配。我已经读过AKAZE与SIFT相比表现更好,但我发现不然。我使用openCV的Java实现,我发现SIFT产生更好的特征点,从而与AKAZE相比更好地匹配。以下是我用于检测关键点,计算描述符和查找匹配项的代码:

     MatOfKeyPoint objectKeyPoints1 = new MatOfKeyPoint();
      MatOfKeyPoint objectKeyPoints2 = new MatOfKeyPoint();

      FeatureDetector featureDetector1 = FeatureDetector.create(FeatureDetector.SIFT);
      FeatureDetector featureDetector2 = FeatureDetector.create(FeatureDetector.SIFT);

      featureDetector1.detect(image1, objectKeyPoints1);
      featureDetector2.detect(image2, objectKeyPoints2);

      DescriptorExtractor descriptorExtractor = DescriptorExtractor.create(DescriptorExtractor.SIFT);

      MatOfKeyPoint objectDescriptors1 = new MatOfKeyPoint();
      descriptorExtractor.compute(image1, objectKeyPoints1, objectDescriptors1);

      MatOfKeyPoint objectDescriptors2 = new MatOfKeyPoint();
      descriptorExtractor.compute(image2, objectKeyPoints2, objectDescriptors2);
      MatOfDMatch mtd=new MatOfDMatch();

      DescriptorMatcher descriptorMatcher = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE)
      descriptorMatcher.match(objectDescriptors1,objectDescriptors2 , mtd);

AKAZE的代码也是一样的,只是我用代码中的AKAZE代替SIFT。在900个关键点中,我得到了SIFT的178场比赛,但是AKAZE只有10-20场比赛。

您能否帮我确定可能导致此问题的原因?这可能与openCV的Java包装器有关吗?

由于

0 个答案:

没有答案