如何将 OpenCV 4.0 集成到纯 C++ Android NDK 项目中?
How can I integrate OpenCV 4.0 into a pure C++ Android NDK project?
我集成需要哪些步骤,
进入纯C++(无Java代码)AndroidNDK项目,如AndroidNDKGoogle教程:
official documentation for android 集成指的是更旧的版本:OpenCV-2.4 和文件夹结构不再相同。
我在 Linux 上使用 Android Studio。
非常感谢所有帮助。
下载 opencv Android 包(例如 opencv-4.0.1-android-sdk)并解压到 ~/android
.
到CMakeLists.txt的底部,添加
set( OpenCV_DIR "~/android/OpenCV-android-sdk/sdk/native/jni" )
find_package( OpenCV REQUIRED )
target_link_libraries(game opencv_java)
包将定义以下变量:
OpenCV_LIBS : OpenCV 模块的所有导入目标列表。
OpenCV_INCLUDE_DIRS : OpenCV 包含目录列表。使用 CMake >= 2.8.11 你甚至不需要写
include_directories(${OpenCV_INCLUDE_DIRS})
此版本的预构建 OpenCV SDK 还定义了
OpenCV_VERSION : 此 OpenCV 构建版本:"4.0.1"
OpenCV_ANDROID_NATIVE_API_LEVEL : Android API 的最低要求级别: "16"。
这意味着您的应用程序清单需要 minSdkVersion 16 或更高版本(原始示例需要修复 here)。
您可以使用静态库(opencv_imgcodecs、opencv_stitching[=,而不是包含所有 OpenCV 功能的共享库62=]、等)。这些静态库假定默认 ANDROID_STL=c++_static.
为获得最佳效果,请使用 NDK r.18 或 r.19.
更新: NDK r.21 适用于 opencv 4.3.0.
如果您想创建共享对象(.so)
并在不使用 Android studio 的情况下进行编译,这是我的 blog。当您想创建本机第三方库时,这通常很有用。
我集成需要哪些步骤,
进入纯C++(无Java代码)AndroidNDK项目,如AndroidNDKGoogle教程:
official documentation for android 集成指的是更旧的版本:OpenCV-2.4 和文件夹结构不再相同。
我在 Linux 上使用 Android Studio。
非常感谢所有帮助。
下载 opencv Android 包(例如 opencv-4.0.1-android-sdk)并解压到
~/android
.到CMakeLists.txt的底部,添加
set( OpenCV_DIR "~/android/OpenCV-android-sdk/sdk/native/jni" ) find_package( OpenCV REQUIRED ) target_link_libraries(game opencv_java)
包将定义以下变量:
OpenCV_LIBS : OpenCV 模块的所有导入目标列表。
OpenCV_INCLUDE_DIRS : OpenCV 包含目录列表。使用 CMake >= 2.8.11 你甚至不需要写
include_directories(${OpenCV_INCLUDE_DIRS})
此版本的预构建 OpenCV SDK 还定义了
OpenCV_VERSION : 此 OpenCV 构建版本:"4.0.1"
OpenCV_ANDROID_NATIVE_API_LEVEL : Android API 的最低要求级别: "16"。
这意味着您的应用程序清单需要 minSdkVersion 16 或更高版本(原始示例需要修复 here)。
您可以使用静态库(opencv_imgcodecs、opencv_stitching[=,而不是包含所有 OpenCV 功能的共享库62=]、等)。这些静态库假定默认 ANDROID_STL=c++_static.
为获得最佳效果,请使用 NDK r.18 或 r.19.
更新: NDK r.21 适用于 opencv 4.3.0.
如果您想创建共享对象(.so)
并在不使用 Android studio 的情况下进行编译,这是我的 blog。当您想创建本机第三方库时,这通常很有用。