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识别)和运动跟踪等

  1. OpenCV与Android项目的部署

       (1) 解压OpenCV库

     

opencv knn说明 opencv ndk_opencv knn说明

     (2) 将解压的OpenCV库放到工作目录(具体位置自定义),比如:

opencv knn说明 opencv ndk_OpenCV_02

      (3) 建立项目的工作目录,这里设置工作目录为:OpenCV

 

opencv knn说明 opencv ndk_库文件_03

 

注意: 项目工程目录与OpenCV库需要保证属于同一级目录

  (4) 在工作目录OpenCV下,新建Android项目:OpenCV_Example

opencv knn说明 opencv ndk_库文件_04

 

4. NDK调用OpenCV库

(1) 在Android项目中建立JNI目录

opencv knn说明 opencv ndk_库文件_05

(2) 建立.h文件

 通过命令行,生成public native void OpenCV_ConvertImage()方法的头文件.然后将头文件拷贝到jni目录

opencv knn说明 opencv ndk_Android_06

 (3) 根据.h文件,在jni目录,新建编写.cpp文件

opencv knn说明 opencv ndk_OpenCV_07

(4) 配置Android.mk文件

    我们可以从OpenCV所带的例子中拷贝该文件到我们工程中。只需要修改LOCAL_MODULE和LOCAL_SRC_FILES,改成自己的cpp文件名字和模块名字

opencv knn说明 opencv ndk_opencv knn说明_08

 注意:

 ../includeOpenCV.mk为相对路径,此文件 OpenCV自带例子中有,我们将该文件拷贝过来,和我们的工程文件放在同一级目录.目录结构如下:

opencv knn说明 opencv ndk_Android_09

 (5) 配置 Application.mk文件

opencv knn说明 opencv ndk_库文件_10

  该文件主要是对STL库的一些选择;APP_ABI是生成相应硬件平台的机器码. APP_MODULES需要与Android.mk文件中对应

  (6) 拷贝库相关文件到目录

opencv knn说明 opencv ndk_opencv knn说明_11

 注意:如果不拷贝此库的相关文件到目录,在生成库文件时会出现错误

  (7) 编译.cpp文件,生成库文件

        打开cygwin软件,进入到项目目录,然后执行$NDK/ndk-build目录进行编译

opencv knn说明 opencv ndk_库文件_12

  到此为止,已经成功生成了库文件

  1. 在Android中调用库文件
  2. 运行效果如下: