有人會說了;
不是 有直接提供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徘徊的少年.