OpenCV4 Android SDK
本教程旨在帮助您安装和配置OpenCV4Android SDK。
本指南是使用MS Windows 7编写的,尽管它也适用于GNU Linux和Apple Mac OS。
本教程假设您已安装并配置了以下软件:
- JDK
- Android SDK和NDK
- Eclipse IDE
- Eclipse的ADT和CDT插件
如果您需要上述任何方面的帮助,您可以参考我们的Android开发入门指南。
如果您在彻底按照这些步骤后遇到任何错误,请随时通过W3Cshool官方qun或OpenCV Q&A论坛与我们联系。我们将竭尽全力帮助您。
Tegra Android开发包用户
您可能已经使用了NVIDIA发布的用于Android开发环境设置的Tegra Android开发包(TADP)。
除Android开发工具之外,TADP 2.0还包括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
- sdk 文件夹包含用于Android的OpenCV API和库:
- sdk/java 文件夹包含一个提供OpenCV Java API的Android库Eclipse项目,可以导入到开发人员的工作区;
- sdk/native 文件夹包含用于ARM-v5,ARM-v7a和x86架构的OpenCV C ++标头(用于JNI代码)和原生Android库(* .so和* .a);
- sdk/etc 文件夹包含与OpenCV分发的Haar和LBP级联。
- apk 文件夹包含应安装在目标Android设备上的Android软件包,以通过OpenCV Manager API启用OpenCV库访问(见下面的详细信息)。
在可以访问Google Play市场(和互联网)的生产设备上,这些软件包将使用OpenCV Manager API在应用程序的第一次启动时从Market安装。但是没有Market或Internet连接的devkits需要手动安装这些软件包。如果需要,安装Manager.apk和可选binary_pack.apk。看Manager Selection详情。
- amples文件夹包含示例应用程序项目及其预构建软件包(APK)。将它们导入Eclipse工作区(如下所述),并浏览代码以了解OpenCV在Android上的使用方式。
- doc文件夹包含PDF格式的各种OpenCV文档。它也可以在http://docs.opencv.org在线获得。
从版本2.4.3开始OpenCV4Android SDK使用OpenCV Manager API进行库初始化。OpenCV Manager是一种基于Android服务的解决方案,为OpenCV应用开发人员提供以下优势:
- 紧凑的apk-size,因为所有应用程序使用与Manager相同的二进制文件,并且不将本机库存储在其中;
- 在所有支持的平台上自动启用硬件特定优化;
- 自动更新和错误修复;
- 可信的OpenCV库源码。OpenCV的所有包都在Google Play上公布;
手动OpenCV4Android SDK设置
获取OpenCV4Android SDK
- 访问SourceForge上的OpenCV下载页面并下载最新的可用版本。目前它是OpenCV-2.4.9-android-sdk.zip。
- 使用OpenCV开发为Android创建一个新的文件夹。对于本教程,我们将OpenCV SDK解包到C:WorkOpenCV4Android目录中。
注意 更好地使用没有空格的路径。否则您可能会遇到ndk-build问题。
将SDK归档解压缩到所选目录中。
您可以使用任何流行的归档器(例如使用7-Zip)来解压缩它:
在Unix上,您可以使用以下命令:
unzip〜/ Downloads / OpenCV-2.4.9-android-sdk.zip
将OpenCV库和示例导入Eclipse
1、启动Eclipse并选择您的工作区位置。
我们建议您从新的干净工作区开始使用OpenCV for Android。例如,可以在打开OpenCV4Android SDK包的文件夹中创建一个新的Eclipse工作区:
2、将OpenCV库和样本导入工作区。
OpenCV库作为一个可以使用的Android图书馆项目进行打包。您可以在项目中简单地引用它。
每个包含的样本OpenCV-2.4.9-android-sdk.zip都是已经引用OpenCV库的常规Android项目。按照以下步骤将OpenCV和样本导入工作区:
- 右键单击包资源管理器窗口,然后从上下文菜单中选择导入...选项:
- 在主面板中,选择常规 - >现有项目进入工作区,然后按下一步按钮:
- 在“选择根目录”字段中找到OpenCV包文件夹。Eclipse应该自动定位OpenCV库和示例:
- 单击完成按钮完成导入操作。
单击完成按钮后,Eclipse会将所有选定的项目加载到工作空间中,并且在构建OpenCV样本时必须等待一段时间。只需给一分钟的Eclipse完成初始化。
一旦Eclipse完成构建,您将拥有干净的工作空间而不会造成任何构建错误
运行OpenCV示例
此时您应该可以构建和运行样品。请记住,面部检测和教程2 - 混合处理包括一些本机代码,并需要Android NDK和NDK / CDT插件来构建工作应用程序。如果您尚未安装这些工具,请参阅Android开发中的简介部分。
警告
请考虑一些示例使用Android Java Camera API,可通过AVD访问。
那么,从Eclipse运行的样本很简单:
- 将您的设备与Android SDK中的adb工具连接,或创建具有相机支持的模拟器。
- 选择要在Package Explorer中启动的项目,然后按Ctrl + F11或从主菜单中选择Run - > Run选项,或单击工具栏上的Run按钮。
- 选择Android应用程序选项,然后单击确定按钮。Eclipse将安装并运行示例。
有可能在第一次启动时,您将不会安装OpenCV Manager软件包。在这种情况下,您将看到以下消息:
要摆脱消息,您将需要安装OpenCV管理器和相应的OpenCV二进制包。如果您的设备/模拟器上安装了Google Play市场,只需点击是。它将重定向到Google Play Market上的相应页面。
如果您无法访问市场(仿真器通常是这种情况),则需要手动从OpenCV4Android SDK文件夹安装软件包。看Manager Selection详情。
<Android SDK path>/platform-tools/adb install <OpenCV4Android SDK path>/apk/OpenCV_2.4.9_Manager_2.18_armv7a-neon.apk
- armeabi适用于具有Android API 8+的ARM v5和ARM v6架构,
- armv7a-neon是针对NEON优化的ARM v7与Android API 9+,
- arm7a-neon-android8是针对NEON优化的ARM v7与Android API 8,
- mips是针对具有Android API 9+的MIPS架构,
- x86适用于具有Android API 9+的Intel x86 CPU。
adb shell getprop ro.product.cpu.abi
Manager Selection
细节部分。完成后,您可以无缝地在设备/模拟器上运行OpenCV示例。
- 这里是样品 - 图像操作示例,运行在模拟器的库存照相机预览之上。
下一步是什么
现在,当您设置和配置OpenCV4Adroid SDK的实例时,您可能需要继续在自己的应用程序中使用OpenCV。您可以通过OpenCV教程在单独的Android开发中学习如何做到这一点。