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

  • 完成配置

参考文档

猜你喜欢

转载自blog.csdn.net/u013108408/article/details/52596177