OpenCV|OpenCV Android Could not find SURF 图片匹配报错

由于上篇文章,我们已经打包了os和O4A 但是在使用的SURF的时候运行 发现会报错说找不到方法
事实上这是因为源码把这段代码注释掉了
找到/home/john/Downloads/opencv-master/modules/features2d/misc/java/src/cpp目录,打开features2d_manual.hpp文件,做以下修改:

在第8行增加一个头文件opencv2/xfeatures2d.hpp,即把

#ifdef HAVE_OPENCV_FEATURES2D
#include "opencv2/features2d.hpp"
#include "features2d_converters.hpp"
改为

#ifdef HAVE_OPENCV_FEATURES2D

#include "opencv2/features2d.hpp"
#include "opencv2/xfeatures2d.hpp"
#include "features2d_converters.hpp"
把第120-125行的改为

caseSIFT:

fd=xfeatures2d::SIFT::create();
break;
caseSURF:
fd=xfeatures2d::SURF::create();
break;
把第239-245行的

caseSIFT:

de=xfeatures2d::SIFT::create();
break;
caseSURF:
de=xfeatures2d::SURF::create();
break;
把第254-256行的

caseFREAK:

de=xfeatures2d::FREAK::create();
break;
【OpenCV|OpenCV Android Could not find SURF 图片匹配报错】一共4个地方改好 重新编译一下 重新导入模块和os就不会报错了

    推荐阅读