我需要采取哪些步骤进行整合,
最新版本的OpenCV
进入纯C ++(无Java代码)Android NDK项目,如Android NDK Google教程:
无尽的隧道?
官方……
下载opencv Android软件包(例如 OpenCV的-4.0.1-Android的SDK )并打开包装,比方说, ~/android 。
~/android
到底 的 的CMakeLists.txt 强> ,添加
set( OpenCV_DIR "~/android/OpenCV-android-sdk/sdk/native/jni" ) find_package( OpenCV REQUIRED ) target_link_libraries(game opencv_java) get_target_property(__src opencv_java IMPORTED_LOCATION_RELEASE ) add_custom_command(TARGET game POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${__src} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} )
该包将定义以下变量:
的 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或更高(原始样本需要修复 这里 )。
您可以使用静态库(而不是包含所有OpenCV功能的共享库) 的 opencv_imgcodecs 强> , 的 opencv_stitching 强> , 等 )。这些静态库采用默认值 的 ANDROID_STL = C ++ _静态 强> 。
为获得最佳效果,请使用NDK 的 R.18 强> 要么 的 R.19 强> 。
我打开了一个 功能要求 为Android NDK提供更好的支持导入的共享库 。