OpenCV介绍:Java&Android——OpenCV4Android SDK OpenCV v4.8.0

上一个教程Android 开发入门

下一个教程 : 使用 OpenCV 进行 Android 开发

原作者Vsevolod Glumov
兼容性OpenCV >= 3.0

警告
本教程已过时。

本教程旨在帮助您安装和配置 OpenCV4Android SDK。

本教程是针对 MS Windows 7 编写的,但也适用于 GNU Linux 和 Apple Mac OS。

本教程假定您已安装和配置了以下软件:

  • JDK
  • Android SDK 和 NDK
  • Eclipse IDE
  • Eclipse 的 ADT 和 CDT 插件
    如果您在上述任何方面需要帮助,请参阅我们的 **Android 开发入门**指南。

如果您在彻底执行这些步骤后遇到任何错误,请随时通过 OpenCV4Android 讨论组或 OpenCV Q&A 论坛联系我们。我们将尽力帮助您。

概况

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 文件夹包含 OpenCV API 和 Android 库:
  • sdk/java 文件夹包含一个 Android 库 Eclipse 项目,提供 OpenCV Java API,可导入到开发人员的工作区;
  • sdk/native 文件夹包含用于 ARM-v5、ARM-v7a 和 x86 架构的 OpenCV C++ 头文件(用于 JNI 代码)和本地 Android 库(*.so 和 *.a);
  • sdk/etc 文件夹包含与 OpenCV 一起发布的 Haar 和 LBP 级联。
  • apk 文件夹包含应安装在目标安卓设备上的安卓软件包,以便通过 OpenCV Manager API 访问 OpenCV 库(详见下文)。

在可访问 Google Play Market(和互联网)的生产设备上,这些软件包将在首次启动使用 OpenCV Manager API 的应用程序时从 Market 安装。但没有市场或互联网连接的开发套件则需要手动安装这些软件包。如果需要,请安装 Manager.apk 和可选的 binary_pack.apk。有关详情,请参阅 “管理器选择”。

注意事项
最好从互联网上安装,因为 OpenCV 团队可能会在市场上发布此软件包的更新版本。

  • samples 文件夹包含示例应用程序项目及其预编译包 (APK)。将它们导入 Eclipse 工作区(如下所述)并浏览代码,以了解在 Android 上使用 OpenCV 的可能方式。
  • doc 文件夹包含各种 PDF 格式的 OpenCV 文档。也可从 http://docs.opencv.org 在线获取。

注意
最新的文档(夜间版本)在 http://docs.opencv.org/4.x。一般来说,它是最新的,但也可能涉及尚未发布的功能。

待办事项:
我不确定这里是否是讨论 OpenCV 管理器的最佳场所

从 2.4.3 版开始,OpenCV4Android SDK 使用 OpenCV Manager API 进行库初始化。OpenCV Manager 是一种基于 Android 服务的解决方案,可为 OpenCV 应用程序开发人员带来以下好处:

  • 压缩 apk 大小,因为所有应用程序都使用来自管理器的相同二进制文件,而不会在自身内部存储本地库;
  • 在所有支持的平台上自动启用硬件特定优化;
  • 自动更新和错误修复;
  • 可信的 OpenCV 库源。所有包含 OpenCV 的软件包均在 Google Play 上发布;

手动设置 OpenCV4Android SDK

获取 OpenCV4Android SDK

  1. 访问 SourceForge 上的 OpenCV 下载页面,下载最新可用版本。本教程基于此软件包: OpenCV-2.4.9-android-sdk.zip
  2. 为 Android 创建一个新的 OpenCV 开发文件夹。在本教程中,我们将 OpenCV SDK 解压到 C:\Work\OpenCV4Android\ 目录下。

注意
最好使用不带空格的路径。否则ndk-build可能会有问题。

  1. 将 SDK 压缩包解压到所选目录。

您可以使用任何常用的压缩器(例如 7-Zip)解压:

在这里插入图片描述
在 Unix 上,您可以使用以下命令:

unzip ~/Downloads/OpenCV-2.4.9-android-sdk.zip

将 OpenCV 库和示例导入 Eclipse

  1. 启动 Eclipse 并选择工作区位置。

我们建议从一个新的干净工作区开始使用 OpenCV for Android。例如,可以在解压 OpenCV4Android SDK 软件包的文件夹中创建一个新的 Eclipse 工作区:

在这里插入图片描述

  1. 将 OpenCV 库和样本导入工作区。

OpenCV 库已打包成可直接使用的 Android 库项目。您只需在项目中引用即可。

OpenCV-2.4.9-android-sdk.zip 中包含的每个示例都是已引用 OpenCV 库的普通 Android 项目。请按照以下步骤将 OpenCV 和示例导入工作区:

  • 右键单击 "包资源管理器 "窗口,然后从右键菜单中选择 "导入… "选项:
    在这里插入图片描述
  • 在主面板中选择常规 -> 工作区中的现有项目,然后按下 "下一步 "按钮:

在这里插入图片描述

  • 在 "选择根目录 "字段中找到 OpenCV 软件包文件夹。Eclipse 会自动定位 OpenCV 库和示例:

在这里插入图片描述

  • 单击 "完成 "按钮完成导入操作。

注意
OpenCV 示例确实依赖于 OpenCV 库项目,因此不要忘记将其也导入到工作区。

单击 Finish 按钮后,Eclipse 会将所有选定的项目加载到工作区,在构建 OpenCV 样本时,你需要等待一段时间。只需等待一分钟,Eclipse 就会完成初始化。

在这里插入图片描述
一旦 Eclipse 完成构建,你将拥有一个没有任何构建错误的干净工作区:

在这里插入图片描述

运行 OpenCV 示例

至此,您应该可以构建并运行示例了。请记住,人脸检测和教程 2 - 混合处理包含一些本地代码,需要 Android NDK 和 Eclipse 的 NDK/CDT 插件才能构建工作应用程序。如果尚未安装这些工具,请参阅 **Android 开发入门**的相应部分。

警告

请注意某些示例使用 Android Java Camera API,该 API 可通过 AVD 访问。

注意事项
最新的 Android SDK 工具(修订版 19+ )可以运行 ARM v7a 操作系统映像,但并不适用于所有
Android 版本。

从 Eclipse 运行示例非常简单:

  • 使用 Android SDK 中的 adb 工具连接设备,或创建一个支持摄像头的模拟器。
  • 在软件包资源管理器中选择要启动的项目,然后按 Ctrl + F11 或从主菜单中选择运行 -> 运行选项,或单击工具栏上的运行按钮。

注意事项
安卓模拟器可能需要几分钟才能启动。因此,请耐心等待。* 第一次运行时,Eclipse 会询问你应用程序的运行模式:

在这里插入图片描述

  • 选择 "Android 应用程序 "选项,然后单击 "确定 "按钮。Eclipse 将安装并运行示例。
    首次启动时,您可能没有安装 OpenCV Manager 软件包。在这种情况下,您将看到以下消息:

在这里插入图片描述
要消除该消息,您需要安装 OpenCV Manager 和相应的 OpenCV 二进制包。如果您的设备/模拟器上安装了 Google Play Market,只需点击 “是”。它将重定向到 Google Play Market 上的相应页面。

如果您无法访问市场(通常是模拟器),则需要手动安装 OpenCV4Android SDK 文件夹中的软件包。详情请参阅 “管理器选择”。

<Android SDK 路径>/platform-tools/adb install <OpenCV4Android SDK 路径>/apk/OpenCV_2.4.9_Manager_2.18_armv7a-neon.apk

备注
armeabi、armv7a-neon、arm7a-neon-android8、mips 和 x86 代表平台目标:
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 用于 MIPS 架构,支持 Android API 9+、
x86 适用于 Intel x86 CPU,支持 Android API 9+。
如果使用硬件设备进行测试/调试,请运行以下命令了解其 CPU 架构:
adb shell getprop ro.product.cpu.abi
如果使用的是 AVD 模拟器,进入窗口 > AVD
管理器查看可用设备列表。单击所选设备右键菜单中的 “编辑”。在弹出的窗口中找到 CPU 字段。 详细信息请参阅 "管理器选择 "部分。

完成后,您就可以在设备/模拟器上无缝运行 OpenCV 示例了。

  • 下面是在模拟器的相机预览上运行的图像处理示例。

在这里插入图片描述

下一步

现在,当您设置并配置好 OpenCV4Adroid SDK 实例后,您可能想在自己的应用程序中使用 OpenCV。您可以在另一篇 使用 OpenCV 的 Android 开发教程 中学习如何做到这一点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值