opencv android compile

OpenCV Android so 編譯過程

資源準備

  • 源碼下載

地址:https://github.com/opencv/opencv

  • 擴展庫源碼下載

地址:https://github.com/opencv/opencv_contrib

以上資源本人都是下載的3.0版本,注意兩個資源庫版本要一致
以上兩個源碼庫下載之後並解壓

工具準備

  • Android NDK下載

可以從官網下載,由於國內Android官網被斃,所以提供一個不需要翻牆也可以下載相關資源的網站:http://www.androiddevtools.cn/
選擇相應的NDK版本下載,本人選擇的是r11

  • CMAKE下載

下載地址:https://cmake.org/download/

  • MinGW下載

下載地址:https://sourceforge.net/projects/mingw/?source=typ_redirect

  • IDE

Eclipse或者Android studio,
相關的安裝教程不在贅述,網上有很多

環境配置

  • NDK 路徑配置

比如:
NDK_HOME爲D:\android-ndk-r11b-windows-x86_64\android-ndk-r11b
PATH中%NDK_HOME%;

  • MinGW 路徑配置

比如:
MINGW_HOME爲D:\Mingw
Path中%MINGW_HOME%\bin;

編譯過程

1.打開CMAKE-GUI工具

這裏寫圖片描述

  • 第一步,選擇存放源文件的目錄,即解壓好的opencv源文件
  • 第二步,選擇存放編譯後的文件目錄
  • 第三步,爲了方便查看相應的選項,選中grouped,即以集合列表顯示
  • 第四步,選中advanced
  • 第五步,點擊ADD ENTRY
    這裏寫圖片描述

  • 如圖設置ANDROID_NDK環境變量,並配置NDK目錄位置,點擊OK

  • 點擊config,進行配置

這裏寫圖片描述

- 選擇工程生成器爲MinGW Makefiles
- 選中指定跨平臺編譯的工具鏈文件
- 點擊next

這裏寫圖片描述

- 指定工具鏈文件,比如D:/cv30/opencv-3.0.0/platforms/android/android.toolchain.cmake
- 點擊finish
  • 等待配置完成之後,選擇查看ANDROID下的相應的選中條目是不是自己想要的
  • 配置opencv extra modules路徑

這裏寫圖片描述

  • 再次點擊config,等待完成

  • 完成之後,取消如下圖選中opencv_bioinspired

這裏寫圖片描述

  • 再次點擊config
  • 完成之後,點擊generate
  • 生成之後,開始進行MinGW操作

2.MinGW操作

  • 進入到MinGW安裝目錄,依次進入msys==>>1.0,打開msys.bat
  • 進入到CMAKE-GUI生成的路徑
    這裏寫圖片描述

  • 命令行操作 mingw32-make
    這裏寫圖片描述

  • 上一步執行完成後,繼續mingw32-make install
    這裏寫圖片描述

  • 完成之後進入==>>install==>>sdk,native裏面就是編譯好的sdk了
    這裏寫圖片描述

3.IDE集成

  • Eclipse中配置項目
    這裏寫圖片描述

這裏寫圖片描述

按照上面兩張圖配置相關的項目庫環境

  • Android studio中配置項目
    複製編譯好的項目庫native包,到工程項目文件夾下

4.Android.mk文件和Application.mk文件配置

  • Android.mk文件

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
#Copies necessary OpenCV dynamic libs to the project libs folder in order to include them into the APK.
OPENCV_INSTALL_MODULES:=on
#Skip native OpenCV camera related libs copying to the project libs folder.
OPENCV_CAMERA_MODULES:=off
#Perform static linking with OpenCV. By default dynamic link is used and the project JNI lib depends on libopencv_java.so.
OPENCV_LIB_TYPE:=STATIC
include D:\cvandroid\cvand\install\sdk\native\jni\OpenCV.mk
LOCAL_MODULE :=imgprocess
LOCAL_LDLIBS +=-llog
LOCAL_SRC_FILES := ImgProcess.cpp

##FILE_LIST := $(wildcard $(LOCAL_PATH)/../*.cpp)  
##LOCAL_SRC_FILES += $(FILE_LIST:$(LOCAL_PATH)/%=%)  


include $(BUILD_SHARED_LIBRARY)

這裏寫圖片描述

- 1就是上面編譯好的sdk路徑裏面的opencv.mk
- 2就是自己編寫的代碼文件
  • Application.mk文件

APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_ABI := armeabi-v7a
APP_PLATFORM :=android-19

  • 完成配置

參考文檔

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