如何将 OpenCV 库添加到 AS3.1.2 和 NDK 17.0

Álv*_*san 4 android opencv android-ndk android-studio

我需要在 Android Studio 3.1.2 中使用 OpenCV。我拥有此 IDE 和 NDK 的最新版本(2018 年 5 月 20 日)(17.0.4754217)。

我读过这篇文章谈论它,并提到了 NDK 版本 16 的问题,但事实并非如此。

大多数指南都是针对旧版本的 Android(我看到指南谈论用于 Android 开发的 Eclipse IDE),但没有人提供最新版本或最接近的版本,这是一个问题,因为最新版本的 AS 会导致旧版本出现许多错误项目或其制作方式,因此它们使这些指南变得过时。

也许是由于我不知道如何使用 NDK 和 CMake 而引起的问题,所以如果有人知道如何或尝试过这样做,能告诉我如何将 OpenCV 添加到 Android 3.1.2,我将不胜感激,也许这篇文章可以对其他用户使用 NDK 和 AS 的未来版本有所帮助。

太喜欢了。

Muh*_*sir 5

1.确保您有最新的 Android SDK,并安装了 NDK

2.从 OpenCV.org 下载最新的适用于 Android 的 OpenCV SDK 并解压 zip 文件。

3.新建Android Studio项目

  • 检查包括 C++ 支持 图片1
  • 选择空活动
  • 在 C++ 支持中,您可以检查 -fexceptions 和 -frtti 图2

4.导入OpenCV库模块

  • 新建 -> 导入模块
  • 选择 YOUR_OPENCV_SDK/sdk/java 文件夹 图3
  • Unckeck 替换 jar、unckeck 替换 lib、unckeck 创建 gradle 样式 图4

5.设置 OpenCV 库模块以适合您的 SDK

应用程序/build.gradle 图5

opencv/build.gradle 图6

编辑 openCVLibrary/build.gradle 以匹配您的 app/build.gradle 例如:

compileSdkVersion 27
defaultConfig {
minSdkVersion 19
targetSdkVersion 27
}
Run Code Online (Sandbox Code Playgroud)

6.在应用程序模块中添加 OpenCV 模块依赖项

文件 -> 项目结构 -> 模块应用程序 -> 依赖项选项卡 -> 新建模块依赖项 -> 选择 OpenCV 库模块 图7

图16

7.右键单击​​ app/src/main创建一个jni文件夹,然后单击“更改文件夹位置”框,然后将文件夹从jni重命名为jniLibs

  • 第一步 图8

  • 第二步 图9

  • 第三步 图10

8.从您下载的opencv 目录YOUR_OPENCV_SDK/sdk/native/libs中复制所有文件并将其粘贴到jniLibs文件夹中

  • 第一步 图11

  • 第二步 图12

9.设置应用程序build.gradle

10.配置CMakeLists.txt文件

  • 复制这三行并粘贴到cmake_minimum_required之后

    include_directories(YOUR_OPENCV_SDK/sdk/native/jni/include)
    add_library( lib_opencv SHARED IMPORTED )
    set_target_properties(lib_opencv PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libopencv_java3.so)
    
    Run Code Online (Sandbox Code Playgroud)

    图14

  • 转到CMakeLists.txt末尾并将lib_opencv写入target_link_libraries列表 图15

现在一切都完成了,享受使用 opencv 编码...... 最终图像