Linux 混合编译opencv与opencv_contrib的android版本
?一、該方法只能編譯.a文件
使用該腳本:https://github.com/tzutalin/build-opencv-for-android
1 $ git clone https://github.com/tzutalin/build-opencv-for-android.git 2 $ cd build-opencv-for-android 3 $ ./setup.sh 3.3.1而后配置android ndk的路徑
export ANDROID_NDK=./而后運行腳本即可
./build-android-opencv.sh?二、可同時編譯.a和.so
編譯環境準備
以上你是需要準備編譯的基礎環境,下面分別講解一下:
1.OpenCV源碼
| 1 2 3 | cd <opencv-source>; git clone https://github.com/opencv/opencv.git git checkout -b "3.1.0" "3.1.0" |
?
2.OpenCV_contrib源碼
| 1 2 3 | cd <opencv-contrib>; git clone https://github.com/opencv/opencv-contrib.git git checkout -b "3.1.0" "3.1.0" |
?
PS> 注意我們看到這里我采用的是opencv和opencv_contrib的3.1.0版本,主要的原因是opencv3.0.0和
3.2.0在實踐中會遇到各種莫名其妙的原因,很難進行下去(比如opencv3.2.0目前還很難用mingw編譯),這一塊的摸索花了我大量的時間,所以我建議你也統一使用3.1.0版本。
3.cmake-gui工具
去到cmake官網下載3.8.2版本的cmake-64位工具:https://cmake.org/files/v3.8/cmake-3.8.2-win64-x64.msi
4.MinGW
MinGW是Windows下的GCC編譯工具,去到Sourceforge下載MinGW的管理工具mingw-get-setup.exe。配置mingw的目錄為<mingw-dir>,并將<mingw-dir/bin>添加進系統變量。
PS> 注意你可以選擇mingw32或者mingw64都是可以的。我后續采用的是mingw32。也就是安裝選項中的:
5.Android NDK
NDK的官方介紹是:
Android NDK 是一套允許您使用原生代碼語言(例如 C 和 C++)實現部分應用的工具集。在開發某些類型應用時,這有助于您重復使用以這些語言編寫的代碼庫。
你可以去下載最新64位穩定版本:android-ndk-r14b-windows-x86_64.zip
當然由于歷史原因我選擇的是android-ndk-r12b-windows-x86_64.zip
下載后解壓開即可。解壓目錄為<ndk-dir>。
6&7. Android SDK和Android Studio就不必說了,注意SDK的版本安裝全一點,從API_LEVEL=19以上的都下了最好。其中SDK的目錄為<sdk-dir>。
8.JAVA ANT 1.9.9
在編譯OpenCV for JAVA起到關鍵作用。下載地址:http://apache.fayea.com//ant/binaries/apache-ant-1.9.9-bin.zip。 相應解壓目錄為<ant-dir>。
編譯配置
等待configure完成,如下圖所示:
我們接著添加opencv-contrib模塊,搜索extra,在OPENCV_EXTRA_MODULES_PATH添加路徑<opencv-contrib>/modules
Configuring done完成后我們還需要進行一些調整:
ANT_EXECUTABLE=<ant-dir>/bin/ant.bat
上訴設定調整好后,再次點擊configure后再點擊generate,顯示:
Configuring done
Generating done
執行編譯
在上述編譯配置完成后,通過命令行工具進入<opencv-source>/platforms/android_arm目錄,執行
| 1 | mingw32-make -j4 |
即可開始編譯
?
遇到的問題:
1、ndk和sdk需要選擇win64版本
2、報選擇API錯誤,實際是讀取ndk中特定api-level中的include文件讀取不到,從其他版本的ndk中拷貝即可
轉載于:https://www.cnblogs.com/zl1991/p/9285266.html
總結
以上是生活随笔為你收集整理的Linux 混合编译opencv与opencv_contrib的android版本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lamba统计最大值,最小值,平均值,总
- 下一篇: 黑盒测试方法之功能图法