在ubuntu系統上,將opencv源碼編譯到android上

有人會說了;

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章