精品教程--Android中通过NDK使用OpenCV库
1. 准备工作
(1) 搭建NDK环境
需要安装Eclipse、Cygwin和android-ndk
(2) 下载OpenCV库
这里采用的是OpenCV版本是2.3.1,注意这里为下载Android版的OpenCV库
http://opencv.org/downloads.html
(3)需求
从sdcard中读出一张图片,然后保存为另外格式的图片
2. OpenCV库的介绍
OpenCV全程open source computer vision library.是Intel开发的一个计算机视觉库,
包含了多种计算机图形图像处理的库,主要用于图像处理、计算机视觉、模式识别、物体识别(人脸识别,Object识别)和运动跟踪等
- OpenCV与Android项目的部署
(1) 解压OpenCV库
(2) 将解压的OpenCV库放到工作目录(具体位置自定义),比如:
(3) 建立项目的工作目录,这里设置工作目录为:OpenCV
注意: 项目工程目录与OpenCV库需要保证属于同一级目录
(4) 在工作目录OpenCV下,新建Android项目:OpenCV_Example
4. NDK调用OpenCV库
(1) 在Android项目中建立JNI目录
(2) 建立.h文件
通过命令行,生成public native void OpenCV_ConvertImage()方法的头文件.然后将头文件拷贝到jni目录
(3) 根据.h文件,在jni目录,新建编写.cpp文件
(4) 配置Android.mk文件
我们可以从OpenCV所带的例子中拷贝该文件到我们工程中。只需要修改LOCAL_MODULE和LOCAL_SRC_FILES,改成自己的cpp文件名字和模块名字
注意:
../includeOpenCV.mk为相对路径,此文件 OpenCV自带例子中有,我们将该文件拷贝过来,和我们的工程文件放在同一级目录.目录结构如下:
(5) 配置 Application.mk文件
该文件主要是对STL库的一些选择;APP_ABI是生成相应硬件平台的机器码. APP_MODULES需要与Android.mk文件中对应
(6) 拷贝库相关文件到目录
注意:如果不拷贝此库的相关文件到目录,在生成库文件时会出现错误
(7) 编译.cpp文件,生成库文件
打开cygwin软件,进入到项目目录,然后执行$NDK/ndk-build目录进行编译
到此为止,已经成功生成了库文件
- 在Android中调用库文件
- 运行效果如下: