android opencv demo,OpenCV-Demo

OpenCV-Demo

介绍

之所以选取OpenCV最新版4.5,因为在4之前的版本,使用的gnustl_static,这样与最新的AndroidStudio+NDK的c++_shared不兼容(gnustl_static库的符号中无__ndk1字样),无法链接。且老版OpenCV使用的是eclipse工程,使用ndk-build编译,与现在推荐的cmake方式兼容性也不好,需要自己写CMakeLists.txt。

最新版本已经完全将opencv sdk及sample工程切换到了gradle,可以直接导入到AndroidStudio中,甚是方便。

安装过程

本地创建一个支持C++的AS工程(避免直接导入官方的sample工程,因为其内容太多,且gradle版本与本地也极可能不合,我们只想导入sdk)

android opencv demo,OpenCV-Demo_第1张图片

android opencv demo,OpenCV-Demo_第2张图片

解压下载的zip包,将其中的sdk目录作为module导入创建的工程

android opencv demo,OpenCV-Demo_第3张图片

android opencv demo,OpenCV-Demo_第4张图片

使app模块依赖sdk

android opencv demo,OpenCV-Demo_第5张图片

将zip包中samples下的face-detection中的主要文件替换创建的app工程,如src/main/cpp(记得按实际包名修正jni函数名称的前缀)、src/main/res、src/main/java、AndroidManifest.xml等,并将build.gradle中的externalNativeBuild字段修改为face-detection中的对应内容。

android opencv demo,OpenCV-Demo_第6张图片

android opencv demo,OpenCV-Demo_第7张图片

注意的是project(':sdk').projectDir中的sdk是导入的sdk moudle名称,此处为sdk,而不是face-detection中的opencv

这样就完成了sdk的导入,可以直接进行编译、安装、运行。然后就可以在自己的app模块进行算法开发了,不仅可以使用opencv的java API,也可以在jni中使用C++ API(参考DetectionBasedTracker_jni.cpp)。

你可能感兴趣的:(android,opencv,demo)