我打算创建一个简单的Android应用程序,它可以检测标记及其相互之间的相对位置。基本的应用程序正在运行,唯一缺少的是实际的标记检测。
在我的互联网研究中,我发现OpenCV for Android能够做到这一点。此外,Aruco库将提供更简单的编码来编程检测。
但这就是我挣扎的地方。即使花了很长时间在网上寻找线索,我也找不到如何让Aruco在Android Studio中工作。谁能告诉我怎么做,或者在网上给我指出正确的方向?
以下是在android studio中使用OpenCV的基本步骤。
- 下载OpenCV
- 将OpenCV作为模块导入
- 添加OpenCV模块作为依赖项
- 纠正gradle差异
- 设置jni如果需要本地函数
1。下载OpenCV
- 下载OpenCV:
- http://opencv.org/downloads.html
- 下载你想要的"OpenCV for Android"的版本
- 把zip文件放到你电脑的某个目录
2。导入OpenCV作为模块
- 打开Android Studio Project
- 导航到文件->新建->导入模块 现在你需要在你的电脑上浏览你的OpenCV库,选择名为"java"的文件夹导入。
- 这个文件夹应该在文件位置"yourOpenCVDir/OpenCV-android-sdk/sdk/java "
- 你可以给模块起任何你喜欢的名字。例如"OpenCV"就可以。
3。添加OpenCV模块作为依赖项
- 导航到文件->项目结构
- 将出现一个窗口
- 在窗口的左侧窗格将是一个模块部分,点击您的项目名称
- 点击Dependencies选项卡
- 在窗口右侧,点击绿色+号,点击"Module Dependency "
- 选择OpenCV,点击OK
4。
- 如果尚未打开,请单击最左边的项目选项卡android studio窗口的一侧。
- 展开Gradle Scripts选项卡,查看所有Gradle文件
- 查看两个模块的Gradle文件,并确保两个文件中的compileSdkVersion, buildToolsVersion和targetSdkVersion是相同的(如果你不确定你应该有哪个版本,导航到SDK管理器,看看你安装了哪些api,哪些是可用的) 在这篇文章的时候,最新的版本是:
- compileSdkVersion: 23
- buildToolsVersion: 23.0.3
- targetSdkVersion: 23
5。如果需要本机函数,则设置jni
- 一些Android OpenCV需要调用c++函数
- 如果你需要本地代码,在appDir/src/main 的项目文件夹中添加一个名为"jniLibs"的文件夹
- 导航到您的OpenCV库所在的位置,并将您的ropencvdir/OpenCV -android-sdk/sdk/native/libs的内容复制到您刚刚创建的jniLibs文件夹
- 浏览jniLibs文件夹中包含的每个文件夹(例如:"arm64-v8a","mips"等)并删除除"libopencv_java.so"外的所有文件确保你已经安装了android NDK。导航到SDK管理器并单击SDK Tools选项卡
- 选中"NDK"旁边的框,点击OK
你现在应该可以使用OpenCV了!