OpenCV4.9.0在Android 开发简介

查看:OpenCV系列文章目录(持续更新中......)

上一篇:使用 Clojure 进行 OpenCV 开发简介

下一篇:暂无

引言:

OpenCV是一个跨平台计算机视觉库,广泛用于图像处理、计算机视觉和机器学习等领域。通过OpenCV,我们可以轻松地实现各种图像处理算法,如图像滤波、形态学变换、边缘检测、特征提取、图像分割等。随着移动设备的流行,越来越多的应用程序需要在移动平台上使用OpenCV。本篇博客将介绍OpenCV在Android开发中的基础知识和使用方法。您将学习如何配置OpenCV库和使用其API实现一些基本的图像处理功能,包括图像读写、图像显示、图像滤波、形态学操作等。我们还将讨论如何将OpenCV应用于实际应用程序中,例如照相机应用程序和人脸识别应用程序。本篇博客旨在为想要将OpenCV集成到其Android应用程序中的初学者提供指导。我们希望本文能够为读者提供理解OpenCV在Android平台上的基础知识,并提供实际示例来帮助他们更深入地了解OpenCV的API。无论您是有经验的Android开发人员还是初学者,我都相信本篇博客能够为您带来帮助。

Android 是一个基于 Linux 的开源移动操作系统,由谷歌领导的开放手机联盟开发。有关一般详细信息,请参阅 Android 主站点

针对 Android 的开发与其他平台的开发有很大不同。因此,在开始针对 Android 进行编程之前,我们建议您确保熟悉以下关键主题:

  1. Java 编程语言是 Android 操作系统的主要开发技术。此外,您还可以找到有关 Java 的 Oracle 文档
  2. Java 本机接口 (JNI) 是一种在 Java 虚拟机中运行本机代码的技术。此外,您还可以找到有关 JNI 的 Oracle 文档
  3. Android Activity 及其生命周期,这是必不可少的 Android API 类。
  4. OpenCV 开发肯定需要对 Android Camera 的细节有一定的了解。

本指南旨在帮助您学习 Android 开发基础知识并快速设置您的工作环境。它已在 Ubuntu 22.04 和 Windows 10 上进行了测试。如果您在彻底执行这些步骤后遇到任何错误,请随时通过 OpenCV 论坛与我们联系。我们将尽最大努力为您提供帮助。

用于 Android 开发的手动环境设置

在本教程中,我们将使用官方的 Android Studio IDE 和一组其他免费可用的工具。

获取工具和依赖项

Here's how to get a ready to work environment:

  1. 下载并安装 Android Studio:

Ubuntu的:

  1. 下载 Android Studio: https://developer.android.com/studio
  2. 提取tar.gz存档
  3. 按照中的说明操作:在终端中打开文件夹并运行Install-Linux-tar.txt``android-studio/bin``./studio.sh
  4. 通过GUI执行标准安装
  5. 或者,您可以通过单击菜单***"工具"->"创建桌面条目***"在桌面上添加快捷方式以快速访问。该菜单在创建或打开任何项目后显示。

Windows:只需从官方网站下载 Android Studio 并运行安装程序即可

  1. 安装全新的 Android SDK 和 NDK:
  2. 在 Android Studio 中打开 SDK 管理器(自定义 -> 所有设置 -> 语言和框架 -> Android SDK)
  3. 启用"显示包详细信息"复选框
  1. 检查最新版本的 SDK 和 NDK,然后按 OK
  2. 确保您的设备支持所选的 SDK 版本
  3. 安装构建所需的所有软件包:
bash 复制代码
sudo apt install git cmake ninja-build openjdk-17-jdk openjdk-17-jre
  • 其余必需的包是依赖项,应自动安装

查看OpenCV示例

  1. 从 Github 或 SourceForge 的官方发布页面从 Android SDK 下载 OpenCV。
  2. 使用操作系统工具提取 zip 存档。
  3. 在 Android Studio 中打开项目。<YOUR_OPENCV_BUILD_FOLDER>/OpenCV-android-sdk/samples
  4. 连接您的设备
  • 应在设备上启用调试,您可以在 Web 上找到有关它的说明
  • 或者,您可以使用 Android Studio 附带的虚拟设备

从下拉菜单中选择一个示例(例如,)并运行它。15-puzzle

用于测试和调试的设置设备

通常,上述配方按预期工作,但在某些情况下,必须执行其他操作。在本节中,我们将介绍一些情况。

Windows主机

如果您使用的是 Windows 10 或更高版本,则无需执行其他操作即可连接手机并在其上运行示例。但是,早期的 Windows 版本需要更长的过程:

  1. 在Android设备上启用USB调试(通过"设置"菜单)。
  2. 使用 USB 数据线将 Android 设备连接到您的 PC。
  3. 转到"开始"菜单,然后右键单击"计算机"。在上下文菜单中选择"管理"。系统可能会要求您提供管理权限。
  4. 在左窗格中选择"设备管理器",然后在列表中查找未知设备。您可以尝试拔下它,然后重新插入,以检查它是否是您的确切设备出现在列表中。

5、试试运气,无需任何修改即可安装 Google USB 驱动程序:右键单击未知设备,选择"属性"菜单项 -> 详细信息选项卡 -> 更新驱动程序按钮。

6.选择"浏览计算机以查找驱动程序软件"。

  1. 指定文件夹的路径。 <Android SDK folder>/extras/google/usb_driver/ folder.

  2. 如果系统提示您安装未经验证的驱动程序并报告成功,则您已经完成了 USB 驱动程序安装。

  3. 否则(出现如下所示的故障),请按照以下步骤操作。

  4. 再次右键单击 未知设备,选择"属性"-">详细信息"-">硬件 ID",然后复制类似 的行 USB\VID_XXXX&PID_XXXX&MI_XX.

  5. 现在打开文件 <Android SDK folder>/extras/google/usb_driver/android_winusb.inf. 选择 Google.NTx86 或 Google.NTamd64 部分,具体取决于您的主机系统体系结构

  6. 您的设备应该有一个与现有记录类似的记录,您需要手动添加一个

  7. 保存android_winusb.inf文件并尝试再次安装 USB 驱动程序

  8. 这次安装应该会成功

  9. 未知设备现在被识别为 Android 手机。

  10. 可以通过 adb devices 命令在控制台中验证设备 USB 连接是否成功。

  11. 现在,在 Eclipse 中,转到 Run -> Run/Debug 以常规模式或调试模式运行应用程序。设备选择器将允许您在设备中进行选择。

Linux主机

虽然最新的 Ubuntu 版本适用于连接的 Android 设备,但旧版本可能会出现问题。但是,它们中的大多数都可以轻松修复。您必须创建一个新的 **/etc/udev/rules.d/51-android.rules** 配置文件,其中包含有关您的 Android 设备的信息。您可以在此处找到一些供应商 ID 或执行 lsusb 命令以查看插入的 Android 设备的供应商 ID。以下是LG设备的此类文件的示例:

bash 复制代码
SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666", GROUP="plugdev"

然后重新启动您的adb服务器(最好重新启动系统),插入您的Android设备并执行adb devices 命令。您将看到连接的设备列表:

bash 复制代码
savuor@rostislav-laptop:~/Android/Sdk/platform-tools$ ./adb devices
List of devices attached
R58MB40Q3VP device
savuor@rostislav-laptop:~/Android/Sdk/platform-tools$
Mac OS 主机

无需执行任何操作,只需通过 USB 连接您的设备并运行 adb devices 即可检查连接。

后续步骤

现在,当您设置和配置了 OpenCV4Adroid SDK 实例后,您可能希望在自己的应用程序中使用 OpenCV。您可以在单独的 Android 开发 OpenCV 教程中了解如何执行此操作。


参考文献:

1、《Introduction into Android Development》Rostislav Vasilikhin

相关推荐
还鮟2 小时前
CTF Web的数组巧用
android
小蜜蜂嗡嗡3 小时前
Android Studio flutter项目运行、打包时间太长
android·flutter·android studio
aqi003 小时前
FFmpeg开发笔记(七十一)使用国产的QPlayer2实现双播放器观看视频
android·ffmpeg·音视频·流媒体
zhangphil5 小时前
Android理解onTrimMemory中ComponentCallbacks2的内存警戒水位线值
android
你过来啊你5 小时前
Android View的绘制原理详解
android
移动开发者1号8 小时前
使用 Android App Bundle 极致压缩应用体积
android·kotlin
移动开发者1号8 小时前
构建高可用线上性能监控体系:从原理到实战
android·kotlin
ii_best13 小时前
按键精灵支持安卓14、15系统,兼容64位环境开发辅助工具
android
美狐美颜sdk13 小时前
跨平台直播美颜SDK集成实录:Android/iOS如何适配贴纸功能
android·人工智能·ios·架构·音视频·美颜sdk·第三方美颜sdk
恋猫de小郭18 小时前
Meta 宣布加入 Kotlin 基金会,将为 Kotlin 和 Android 生态提供全新支持
android·开发语言·ios·kotlin