时间来不及了,只好整合SimpleWebCamera和openCV自带的face detection。遇到的第一个问题就是:JNI下面的.c文件里识别不了include的东西
#include <opencv2/core/core.hpp>
#include <opencv2/contrib/detection_based_tracker.hpp>
#include <string>
#include <vector>
#include <android/log.h>
#define LOG_TAG "FaceDetection/DetectionBasedTracker"
#define LOGD(...) ((void)__android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__))
using namespace std;
using namespace cv;
于是开始了找解决方案。首先,工程右键没有C/C++ Analysis。解决方法:
转换工程。点击“文件 -> 新建 -> 其他”(快捷键:Ctrl+N)。选择“C/C++”下的“Convert to a C/C++ Project(Adds C/C++ Nature)”。进入“下一步”。
第二步:选中你刚才建的“HelloJni”工程,下面左边选“Makefile project”右边选“Cygwin GCC”。确定后提示的“透视图”不清楚是什么,点击“是”即可。
有了C/C++ analysis ,在C/C++ builder里加了${NDKROOT}/ndk-build.cmd 也还是有识别不了的error。对比发现是 工程目录下include里面的东西不一样。修改的方法:C/C++ General -> Paths and Symbols:在Includes下add新的GNU C依赖路径。此“HelloJni”工程需要“D:\Java\android-ndk-r8\platforms\android-8\arch-arm\usr\include”即可,以后根据不同项目选择不同的依赖库。
face detection 里面有四个,第四个是openCV的lib,可以用绝对路径来写。最后error消失了,剩下了一个using namespace 的还是解析不了。