SurfDescriptorExtractor/featureDetector - OpenCv在IOS中的应用

3

我正在开发一个iPhone项目,其中使用了openCV进行图像匹配。最初我使用了cvMatchTemplate()函数,但输出结果与预期不符。所以现在我正尝试使用FLANN实现SURF检测器。

我尝试将以下.cpp代码移植到Objective-C:

//-- Step 2: Calculate descriptors (feature vectors)
  SurfDescriptorExtractor extractor;

  Mat descriptors_1, descriptors_2;

  extractor.compute( img_1, keypoints_1, descriptors_1 );
  extractor.compute( img_2, keypoints_2, descriptors_2 );

  //-- Step 3: Matching descriptor vectors using FLANN matcher
  FlannBasedMatcher matcher;
  std::vector< DMatch > matches;
  matcher.match( descriptors_1, descriptors_2, matches );

尽管我已经包含了所有必需的库和头文件,但无法编译它。自动完成也没有提供任何探测器的选项。

#include "opencv2/features2d/features2d.hpp"

探测器在头文件中被定义为:
class CV_EXPORTS FeatureDetector
{
...
}

我在这里做错了什么?对于如何调用检测器类(抽象基类)中的方法,您有任何建议吗?
1个回答

1

我没有在 iPhone 上特别使用过 openCV,所以无法提供帮助。但是当我使用特征检测器/描述符/匹配器时,我使用了以下语法(可能与您编写的相同...):

cv::Ptr<cv::DescriptorExtractor> extractor;
extractor = cv::DescriptorExtractor::create("SURF");

cv::Ptr<cv::DescriptorMatcher> matcher;
matcher = cv::DescriptorMatcher::create("FlannBased");

这个样式对你来说可行吗?


刚注意到你在尝试将上述代码移植到Objective C:我没有相关经验,无法帮助你。抱歉! - Chris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接