OpenCV For Android SDK

来源:互联网 发布:工作证制作软件 编辑:程序博客网 时间:2024/05/16 00:53

OpenCV For Android SDK

这个教程会帮助你安装和配置OpenCV4Android SDK。 
这个教程是在我的Windows7上进行编写,而且它可以在GUN Linux和Apple Mac OS上很好的运行。 
这个教程假设你已经安装和配置了如下的软件:

  • JDK
  • Android SDK and NDK
  • Eclipse IDE
  • Eclipse ADT and CDT插件

如果你需要上面的任何帮助,你可以参考《Android开发介绍》教程。

通过如下的步骤如果你有错误和冲突,可以联系OpenCV4Android讨论组或者OpenCV社区。我将以最好的方式来帮助你。

使用Tegra android开发包的用户

你可能在使用NVIDIA发布的Tegra Android开发包(TADP)搭建起来的Android开发环境。 
TADP 2.0除了包含Android开发工具还包含OpenCV4Android SDK,所以它已经安装到了你的系统中,就可以本教程的例子段。 
更多关于TADP的详细教程可以在Android开发介绍找到。

一般信息

OpenCV4Android SDK包可以使用OpenCV库开发Android应用程序。 
如下的内容是包结构:

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • sdk文件夹包含OpenCV Android版本的API和库:
  • sdk/java文件夹包含一个Android库,这个库包含可以引入开发者的工作控件,为Eclipse项目提供OpenCV API
  • sdk/native文件夹包含OpenCV C++的头文件(JNI 代码)和Android本地库(* .so和* .a)分别支持ARM-v5、ARM-v7和x86架构。
  • sdk/etc文件夹包文件OpenCV的Haar和LBP分布式文件。
  • apk文件夹包含可安装的Android包,它可以通过OpenCV的API管理器访问OpenCV的库(下面有详解)。

    Android设备可以访问Google Play应用市场,安装包将通过商店进行安装,在程序第一次启动的时候应用程序会使用OpenCV API管理器。但如果没有应用市场也无法链接互联网,就需要进行手动安装。安装Manager.apk选择安装binary_pack.apk。详见Manager Selection

注意:从互联网安装是最好的方式,因为OpenCV团队可能在应用市场上发布了更新的版本。

  • samples文件夹包含实例项目他们都是预编译版本,都可以编译出APK。他们被引入了Eclipse工作空间可以通过阅读代码的方式来学习OpenCV在Android上的编程。
  • doc文件夹包含很多PDF格式的OpenCV文档,当然也可以进行在线阅读http://docs.opencv.org。

注意:最新的文档(nightly build)在 http://docs.opencv.org/2.4。通常它会有更多的更新,而且你还可以参考未发布功能。

从OpenCV4Android 2.4.3版本开始使用OpenCV API管理器初始化库。OpenCV Manager是基于Android service的解决方案对OpenCV应用程序开发者有如下好处:

  • 紧凑的APK大小,因为所有的应用程序通过管理器使用相同的二进制文件,他们内部并不存贮本地库。
  • 硬件会自动的打开所支持平台的优化方式。
  • 自动升级和bug修复。
  • 可信的OpenCV库,所有的OpenCV包被发布到Google Play。

    OpenCV 管理器的附件信息:

  • Slides

  • Reference Manual

OpenCV4Android SDK安装手册

获取OpenCV4Android SDK

  1. 到SourceForge下载最新版本的OpenCV。当前的最新版本是OpenCV-2.4.9-android-sdk.zip。

注意:更好地使用一个没有空格的路径。否则你使用ndk-build可能会有问题。

  1. 打开SDK架构到选择目录。可以打开选择一些比较常用的架构。这里写图片描述
    在类Unix系统你可以使用下面的命令行:
unzip ~/Downloads/OpenCV-2.4.9-android-sdk.zip
  • 1
  • 1

将OpenCV库和sample引入Eclipse

1.打开Eclipse选择workspace的位置。

我们推荐为OpenCV for Android创建一个新的workspace。打开openCV For Android包,为sample创建一个新的workspace: 
这里写图片描述

2.将OpenCV库和sample导入worksspace

OpenCV库是一Android库项目方式存在的一个包,可以很方便的被你的项目引用。 
OpenCV-2.4.9-android-sdk.zip你的每个sample都引用了OpenCV库。下面是引入OpenCV和sample到workspace中:

  • 右键点击Package Explorer窗口并选择Import…选项: 
    这里写图片描述
  • 在窗口选择Gerneral->Exising Projects into Workspace并点击Next按钮。 
    这里写图片描述
  • 选择OpenCV包的根目录。Eclipse会自动定位OpenCV库和sample的位置: 
    这里写图片描述
  • 点击Finish按钮完成导入。

注意: 
OpenCV sample都依赖Opencv库项目,所以导入项目的时候不要将其遗漏。

点击Finsh按钮之后Eclipse会加载所有选择上的项目,将其导入workspace中,编译的时候你需要等待几分钟。这里写图片描述

Eclipse编译完成之后,workspace里的错误提示将消失: 
这里写图片描述

运行OpenCV的sample

在这点上你需要能编译和运行sample。请注意 face-detection 和 Tutorial 2 - Mixed Processing包含native 代码,需要Eclipse安装了 NDK/CDT 插件,以及 Android NDK 才能完成APK的编译。如果你没有安装这些工具,你可以参考《Android开发介绍》。

警告 
请考虑到一些sample会使用Android Camera的Java API,也要确保AVD带有该硬件。

注意 
最近Android SDK 版本19+ 可以运行ARM v7a的系统镜像,但不保证所有的Android版本都兼容。

好,在Eclipse运行sample非常简单:

  • 通过Android SDK里的adb链接设备,或者创建一个支持摄像头的模拟器。 
    • 查看Managing Virtual Devices文档,有助使用Android模拟器。
    • 查看Using Hardware Devices,对使用Android有帮助。
  • 在Package Explorer现在需要运行的项目,按快捷键Ctrl+ F11或者点击右键,在窗口选择Run->Run。

    提示: 
    Android模拟器需要几分钟才能启动,所以需要耐心。第一次运行Eclipse需要你选择应用程序的运行模式: 
    这里写图片描述

  • 选择Android Application选项并点击OK按钮。Eclipse会安装并运行sample。 
    在第一次运行的情况下,OpenCV Manager不会存在,所以你会看到如下提示: 
    这里写图片描述 
    你需要安装OpenCV Manager和适当的OpenCV二进制库。如果你的硬件设备上有Google Play商店,它会定位到正确的Google Play商店里面。 
    如果你不能访问应用商店,这个通常发生在模拟器上你需要手动安装这个包。

<Android SDK path>/platform-tools/adb install <OpenCV4Android SDK path>/apk/OpenCV_2.4.9_Manager_2.18_armv7a-neon.apk
  • 1
  • 1

提示: 
armeabi, armv7a-neon, arm7a-neon-android8, mips and x86 stand for platform targets: 
armeabi is for ARM v5 and ARM v6 architectures with Android API 8+, 
armv7a-neon is for NEON-optimized ARM v7 with Android API 9+, 
arm7a-neon-android8 is for NEON-optimized ARM v7 with Android API 8, 
mips is for MIPS architecture with Android API 9+, 
x86 is for Intel x86 CPUs with Android API 9+. 
如果使用硬件设备来测试或者debug,运行下面的命令来学习CPU架构: 
adb shell getprop ro.product.cpu.abi 
如果你使用模拟器点击 Window -> AVD Manager查看有效设备。选中设备后点击Edit。在窗口内查看CPU的内容。

当完成后,你可以运行OpenCV的sample了。

  • 这是一个simple中的image-manipulations,在模拟器中使用前置摄像头。

What’s next

现在你已经安装了OpenCV For Android SDK并且对其进行了配置,下一步就是使用OpenCV开发应用程序了。你可以在教程《OpenCV的Android开发》中学会如何去做。

出自:http://docs.opencv.org/master/da/d2a/tutorial_O4A_SDK.html

0 0