c++ - SurfDescriptorExtractor/featureDetector - IOS 中的 OpenCv

标签 c++ objective-c ios opencv feature-detection

我正在开发一个使用 openCV 进行图像匹配的 iphone 项目。最初我使用的是 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
{
...
}

我在这里做错了什么?关于如何调用检测器类(抽象基类)中的方法的任何输入?

最佳答案

我没有在 iphone 上专门使用过 openCV,所以无能为力,但是当我使用特征检测器/描述符/匹配器时,我使用了以下语法(最终可能与你的相同已经写...):

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

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

这种风格适合你吗?

关于c++ - SurfDescriptorExtractor/featureDetector - IOS 中的 OpenCv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8120341/

相关文章:

c++ - 为什么不能使用 [[deprecated]] 弃用模板?

c++ - 将类构造函数作为方法调用

c++ - 获取错误表达式必须具有 C++ 中的类类型

ios - 不了解 NavigationController 和 UIViewControllers 在 iOS 中的工作方式

ios - iPhone:默认隐藏 UITableView 搜索栏

c++ - 即使禁用了优化,Visual Studio 也会优化吗?

ios - RESTKit 对象 BOOL 属性为 true/false JSON

objective-c - Objective-C 类实现中的 C 函数和变量?

ios - 如何在 React Native 应用程序中创建 "Rate this app"链接?

ios - [__NSCFDictionary enumerateObjectsUsingBlock :]: unrecognized selector sent to instance 0x101918a10'