有人会说了;
不是 有直接提供android 版本的sdk 包嘛?
干嘛要自己 编译呢?
主要是 因为,刚开始用的那个版本,(opencv 没加contrib 这个包含很多的算法包在里头)
那就自己编译咯
很多人 (博客) 都说了,这个其实不难编译.
那就开始吧
下载源码,opencv opencv_contrib , Android Sdk NDK 等等;
下载其他的 比如说这些; (cmake ninja ant)
这都不重要了;
看我的截图:
噢 怎么跟我的不一样呢?
A.是这样的,我解释一下, build 文件呢,是编译x86_64的;也就是pc 机的库;
而今天,所讲的 呢,就是编译android的版本了;
B.是的,你看到的build_android 这个文件夹了;
这个文件,是自己新建的; 待会编译的时候用到;OK
C. 有没有看到platforms 这文件夹
进入;
然后 进入 android 文件夹
不知道 有没有看到build_sdk.py 文件
没错,就是这个文件啦
用的是python 解释的;
所以呢...
下面就介绍 怎么运行这个文件:
我写了一个 sh 脚本:
贴上来 给大家:
#!/bin/bash
export OPENCV_DIR=/home/work/opencv-4.1.0
export ANDROID_SDK_PATH=/home/work/Android/Sdk
export ANDROID_NDK_PATH=/home/work/android-ndk-r19c
export OPENCV_CONTRIB_PATH=/home/work/opencv_contrib
export O4A_BUILD_PATH=/home/work/opencv-4.1.0/build_android
echo ${OPENCV_DIR}
echo ${ANDROID_NDK_PATH}
echo ${ANDROID_SDK_PATH}
echo ${OPENCV_CONTRIB_PATH}
echo ${O4A_BUILD_PATH}
cd ${OPENCV_DIR}/platforms/android
./build_sdk.py --ndk_path ${ANDROID_NDK_PATH} --sdk_path ${ANDROID_SDK_PATH} --extra_modules_path ${OPENCV_CONTRIB_PATH}/modules ${O4A_BUILD_PATH} ${OPENCV_DIR}
以上几个 脚本中的变量,看上去 的意思 基本上是:
opencv的 路径 opencv_contrib 的路径
sdk ndk 路径
请 改成你的路径,即可.
然后, bash o4a.sh(上面脚本的名字)
最后,附上 成功编译的图示:
附加一些tips:
opencv4.1.0 android生成错误 #14668
将no_samples_build选项添加到Android SDK构建
基于android的opencv4.0.1+opencv_contrib4.0.1编译
======>望你少走弯路,来自java<=> c++ <==> python徘徊的少年.