# OpenCV-Demo **Repository Path**: lightings/opencv-demo ## Basic Information - **Project Name**: OpenCV-Demo - **Description**: 最新OpenCV Android 4.5示例工程 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-10-17 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 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中,甚是方便。 #### 安装过程 1. 下载 https://master.dl.sourceforge.net/project/opencvlibrary/4.5.0/opencv-4.5.0-android-sdk.zip ![输入图片说明](https://images.gitee.com/uploads/images/2020/1017/211628_e6af3711_130176.png "截图录屏_选择区域_20201017175310.png") 2. 本地创建一个支持C++的AS工程(避免直接导入官方的sample工程,因为其内容太多,且gradle版本与本地也极可能不合,我们只想导入sdk) ![输入图片说明](https://images.gitee.com/uploads/images/2020/1017/212213_a8786e72_130176.png "截图录屏_sun-awt-X11-XDialogPeer_20201017192842.png") ![输入图片说明](https://images.gitee.com/uploads/images/2020/1017/212100_c1e7d669_130176.png "截图录屏_sun-awt-X11-XDialogPeer_20201017192927.png") 3. 解压下载的zip包,将其中的sdk目录作为module导入创建的工程 ![输入图片说明](https://images.gitee.com/uploads/images/2020/1017/213226_fcbf5466_130176.png "截图录屏_选择区域_20201017213218.png") ![输入图片说明](https://images.gitee.com/uploads/images/2020/1017/212359_34b1e1f2_130176.png "在这里输入图片标题") 使app模块依赖sdk ![输入图片说明](https://images.gitee.com/uploads/images/2020/1017/212422_fdd5b2b5_130176.png "截图录屏_选择区域_20201017201115.png") 4. 将zip包中samples下的face-detection中的主要文件替换创建的app工程,如src/main/cpp(记得按实际包名修正jni函数名称的前缀)、src/main/res、src/main/java、AndroidManifest.xml等,并将build.gradle中的externalNativeBuild字段修改为face-detection中的对应内容。 ![输入图片说明](https://images.gitee.com/uploads/images/2020/1017/213300_f7f9f1f1_130176.png "截图录屏_选择区域_20201017200710.png") ![输入图片说明](https://images.gitee.com/uploads/images/2020/1017/212943_848bc67a_130176.png "截图录屏_选择区域_20201017210115.png") 注意的是project(':sdk').projectDir中的sdk是导入的sdk moudle名称,此处为sdk,而不是face-detection中的opencv 5. 这样就完成了sdk的导入,可以直接进行编译、安装、运行。然后就可以在自己的app模块进行算法开发了,不仅可以使用opencv的java API,也可以在jni中使用C++ API(参考DetectionBasedTracker_jni.cpp)。