2

我打算创建一个简单的 Android 应用程序,它可以检测标记及其彼此的相对位置。基本应用程序正在运行,唯一缺少的是实际的标记检测。

在我的互联网研究中,我发现 OpenCV for Android 能够做到这一点。此外,Aruco 库将提供更简单的编码来对检测进行编程。

但这就是我挣扎的地方。即使花了很长时间在网上搜索线索,我也找不到如何让 Aruco 在 Android Studio 中工作。任何人都可以告诉我如何做到这一点或指出我在网络上的正确方向吗?

4

1 回答 1

2

以下是在 android studio 中使用 OpenCV 的基本步骤。

  • 下载 OpenCV
  • 将 OpenCV 作为模块导入
  • 将 OpenCV 模块添加为依赖项
  • 纠正梯度差异
  • 如果需要本机功能,请设置 jni

1.下载OpenCV

  • 通过此链接下载 OpenCV:
  • http://opencv.org/downloads.html
  • 下载您想要的“OpenCV for Android”版本
  • 将 zip 文件放在计算机上的某个目录中

2. 将 OpenCV 作为模块导入

  • 打开你的 Android Studio 项目
  • 导航到文件 -> 新建 -> 导入模块
  • 现在您需要浏览您的计算机以查找您的 OpenCV 库并选择名为“java”的文件夹进行导入。
  • 此文件夹应位于文件位置“yourOpenCVDir/OpenCV-android-sdk/sdk/java
  • 您可以随意命名模块。例如“OpenCV”就可以了。

3.添加OpenCV模块作为依赖

  • 导航到文件 -> 项目结构
  • 将出现一个窗口
  • 在窗口的左窗格将是一个模块部分,单击您的项目名称
  • 单击依赖项选项卡
  • 在窗口右侧,单击绿色的 + 号,然后单击“模块依赖关系”
  • 选择 OpenCV 并点击 OK

4. 更正任何 Gradle 差异

  • 如果尚未打开,请单击 android studio 窗口最左侧的项目选项卡。
  • 展开 Gradle Scripts 选项卡以查看所有 gradle 文件
  • 查看两个模块的 Gradle 文件并确保两个文件中的 compileSdkVersion、buildToolsVersion 和 targetSdkVersion 相同(如果您不确定应该拥有哪个版本,请导航到 SDK 管理器并查看您安装了哪些 API 和哪些可用)
  • 在撰写本文时,最新版本是:
    • compileSdkVersion: 23
    • 构建工具版本:23.0.3
    • 目标SDK版本:23

5.如果需要原生功能,设置jni

  • 一些 Android OpenCV 需要调用 C++ 函数
  • 如果您需要本机代码,请在 appDir/src/main 的项目文件夹中添加一个名为“jniLibs”的文件夹
  • 导航到您的 OpenCV 库所在的任何位置,并将您的 OpenCVDir/OpenCv-android-sdk/sdk/native/libs 的内容复制到您刚刚创建的 jniLibs 文件夹中
  • 浏览 jniLibs 文件夹中包含的每个文件夹(即“arm64-v8a”、“mips”等)并删除除“libopencv_java.so”之外的所有文件 - 确保安装了 android NDK。导航到 SDK管理器并单击 SDK 工具选项卡
  • 选中“NDK”旁边的框,然后单击“确定”

你现在应该可以使用 OpenCV 了!

于 2016-06-22T15:41:37.250 回答