学习android的目的是想在手机上实现计算机视觉的算法。一般算法的研究都是在Matlab上进行,但是手机平台没有那么多的计算资源,用matlab显然是不太现实的。而OpenCV是基于C++语言编写的,可用于开发实时的图像处理、计算机视觉以及模式识别程序。

一:需要的工具

在前面的章节中,我们已经搭建好android,现在我们需要android支持OpenCV,需要哪些工具呢?首先android是基于java开发的,而Opencv是基于C++,所以这两者之间需要工具来相互支持。这一工具是android NDK,而我们需要把一些OpenCV库编译成.so动态库(linux下的动态链接库),需要Cygwin,而在eclipse下开发C++需要安装CDT。另外最重要的是需要计算机视觉算法的一些API,这就需要安装OpenCV4Android。

1.Android NDK

1.1. 基本介绍

Android NDK(Native Development Kit )是一套工具集合,允许你用像C/C++语言那样实现应用程序的一部分。Google仅在极少数情况下建议使用NDK,有如下使用场景:

  • 必须提高性能(例如,对大量数据进行排序)。
  • 使用第三方库。举例说明:许多第三方库由C/C++语言编写,而Android应用程序需要使用现有的第三方库,如Ffmpeg、OpenCV这样的库。

1.2 安装

下载地址:https://developer.android.com/tools/sdk/ndk/index.html

下载的版本是android-ndk-r10c-windows-x86_64.exe。

环境变量:将下载的文件解压,比如我的目录是D:\android-ndk-r10c,将这一目录放在系统变量的Path里头。

测试:在cmd下输入NDK-build,如果出现下面的界面表示安装成功

android学习五---OpenCV for android环境搭建_第1张图片


2.Cygwin (可以不用安装,官方教程上面不需要)

用途:在windows上运行类Unix系统。

3.CDT

一般安装eclipse时都会安装好CDT

4.OpenCV4Android

下载地址:http://sourceforge.net/projects/opencvlibrary/files/opencv-android/

教程:http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/O4A_SDK.html#

官方教程上的工具

  • JDK

  • Android SDK and NDK

  • Eclipse IDE

  • ADT and CDT plugins for Eclipse

二、OpenCV4Android

下载完,解压,

2.1 目录结构如图

OpenCV-2.4.9-android-sdk |_ apk | |_ OpenCV_2.4.9_binary_pack_armv7a.apk | |_ OpenCV_2.4.9_Manager_2.18_XXX.apk | |_ doc |_ samples |_ sdk | |_ etc | |_ java | |_ native | |_ 3rdparty | |_ jni | |_ libs | |_ armeabi | |_ armeabi-v7a | |_ x86 | |_ LICENSE |_ README.android

  • sdkfolder: 针对andriod的OpenCV API和库:

  • sdk/javafolder: 一个包含 Android 库 的Eclipse 项目,能够 提供OpenCV java API,可以导入eclipse工作空间;

  • sdk/nativefolder: 包含 OpenCV C++ headers (for JNI code) 和 native Android libraries (*.so and *.a) 可用于 ARM-v5, ARM-v7a and x86 架构;

  • sdk/etcfolder :contains Haar and LBP cascades distributed with OpenCV.

  • apkfolder :包含用于各个手机架构的OpenCV Manager API,要在手机上跑OpenCV的程序必须安装,这个API能够使程序调用OpenCV库.

  • samples :包括可安装在手机上的一些android应用程序包括源码,可导入Eclipse。

  • doc:不用说啦,就是OpenCV的帮助文档了。

2.2OpenCV ManagerAPI

基于android服务的解决方案,能够提供为OpenCV开发者提供各种好处包括使得开发的APK更加紧凑,因为所有的应用都是使用相同的binaries,所以没必要每个程序都保存一份等等。

2.3 导入OpenCV库和例子到worksapce

file import 选择目录,一定要选择OpenCV-2.4.9-android-sdk这个根目录,或者加上sdk--java这个目录。一定要记得导入OpenCV library,否则会出现OpenCV函数各种红线。

android学习五---OpenCV for android环境搭建_第2张图片

android学习五---OpenCV for android环境搭建_第3张图片

2.3 选择C/C++的编译器

在这些samples中,有些是基于OpenCV java API如image-manipulations,OpenCV C++ API如face-detection。选择face-detection,选择project-properties,C/C++ Build ,首先设置Environment,NDKROOT,value为NDK解压的目录,然后设置Build command为${NDKROOT}/ndk-build.cmd .

android学习五---OpenCV for android环境搭建_第4张图片

2.4 运行OpenCV例子

1.在手机上运行

选择合适的OpenCV Manager,插上手机,在cmd上输入命令adb shell getprop ro.product.cpu.abi,就可以看到手机的架构了如图

android学习五---OpenCV for android环境搭建_第5张图片

在手机上装好OpenCV Manager和OpenCV binary pack(在apk目录下可以找到)。然后像之前一样运行,就可以在手机上看到效果了。

2.在模拟器上运行

开好模拟器

在cmd下使用命令adb install <OpenCV4Android SDK path>/apk/OpenCV_2.4.9_Manager_2.18_armv7a-neon.apk安装OpenCV Manager。

运行samples,由于没有摄像头,运行效果如图。

参考资料:http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/O4A_SDK.html

更多相关文章

  1. 45套精美的 ( Android, iPhone, iPad ) 手机界面设计素材和线框
  2. Android SDK工具:使用layoutopt进行布局优化
  3. 玩转android sqlLite---(附android DB的图行工具)
  4. Android UI用户界面开发辅助工具(值得一试)
  5. 关于Android SDK工具Lint的误报:Class referenced in the manifes
  6. 浅谈android中的目录结构
  7. 为什么微软可以向安卓厂商收取专利费
  8. Android 发版的小工具

随机推荐

  1. Android五大布局对象
  2. android GreenDao数据库框架学习(1)
  3. Android MediaScannerService源码分析
  4. Android内存泄漏终极解决篇
  5. Android之设置ListView数据显示的动画效
  6. Android基础知识整理
  7. Android studio 启动模拟器时解决 VT-x i
  8. android之清理缓存实现
  9. android源码解析--switch
  10. Android Studio 配置SVN 及 代码管理