1.本贴说明
写了这么多年Android,没有认真写过帖子,感觉挺遗憾的,称着新冠病毒猖狂在家无聊,写一篇帖子,打发下时间。本帖使用opencv2.4的头文件以及动态库,并非集成opencv的java api
2.准备
1.AndroidStudio3
2.libopencv_java3.so,以及opencv2.4的头文件,opencv2.4自己去官网下载,可能很慢,一定要下载OpenCV-android-sdk,在sdk包里面才能找到libopencv_java3.so以及头文件
3.创建Demo
注意选择Native C++的项目,如下图
创建好的项目结构如下图(此时可以运行出hello from c++的界面):
4.创建jniLibs,并拷贝动态库到jniLibs
创建好如下图,当然也可以使用libs,但是需要自己去build.gradle设置sourceSets {}
拷贝动态库,根据自己cpu架构自己创建对应文件夹
设置过滤,最好是都设置一下,根据自己需求,比如我只需要armeabi-v7a,就设置如下:
5.拷贝opencv的头文件
在如下位置找到头文件:
拷贝到项目中的如下位置:
6.修改CMakeList.txt
需要修改的地方如下图,但如果是第三方库又依赖其他动态库,其头文件路径与如下的target_include_directories有所不同:
target_link_libraries( # Specifies the target library.
native-lib
opencv_java3
# Links the target library to the log library
# included in the NDK.
${log-lib})
target_include_directories(native-lib
PRIVATE
${CMAKE_SOURCE_DIR}/include)
add_library(opencv_java3 SHARED IMPORTED )
set_target_properties(opencv_java3
PROPERTIES IMPORTED_LOCATION
${CMAKE_SOURCE_DIR}/../jniLibs/${CMAKE_ANDROID_ARCH_ABI}/libopencv_java3.so)
7.在native-lib.cpp中使用opencv
8.结尾
第一次写技术帖子,好多格式都不会,见谅,有错误的地方望大家指出。