安卓opencv。特征检测器。实现检测

标签 android c++ opencv android-ndk feature-detection

我想用 opencv 开发一个 android 应用程序。 我有这个 C++ 代码

FastFeatureDetector detector(50);
detector.detect(mGr, v);

这段代码工作正常。

现在我想使用不同的检测器:

OrbFeatureDetector detector;
detector.detect(mGr, v);

但是我得到以下错误:

The type 'cv::ORB' must implement the inherited pure virtual method 'cv::FeatureDetector::detectImpl'

是什么原因?

最佳答案

有一个基类,是FeatureDetector (链接指向最新的文档)。 FeatureDetector 有一个纯虚方法 detectImpl。至少在您的 OpenCV 版本中。所有派生自 FeatureDetector 的类(子类)都必须实现该方法。显然,FastFeatureDetector 实现了该方法,但 OrbFeatureDetector 没有。

我在 documentation 中看到有很多 child 类: 除FastFeatureDetector , 还有 this , this , this , this , thisthis .

我还找到了cv::ORB ,但不是 OrbFeatureDetector。有一些“踪迹”here (当时是“候选”),但我想知道您使用的是哪个 opencv 版本...您是否尝试包含文件 orb.h

无论如何,我建议,如果您还没有,请将您的 opencv 版本更新到最新版本,并使用 cv::ORB,如下所述:https://stackoverflow.com/a/12202175/2436175

关于安卓opencv。特征检测器。实现检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17478424/

相关文章:

c++ - OpenCV 绘图边界框 CenterPoint

c++ - 未定义对 `WinMain@16 的引用

android - 为 OpenCv 添加模块依赖性的问题

android - JSON异常 : No value for id after completing paypal payment

java - 微调器选择的项目使用数据库 android 打开新的数组列表

android - BottomNavigationView - 如何更改菜单项字体?

java - 从项目 onclick 更新回收 View 行

c++ - 有没有办法从 file.obj 查看源代码?

c++ - 在删除另一类中一个类的对象时,析构函数如何工作

c++ - 通用(构建)系统上 C/C++ 标识符的最大长度是多少?