安卓开发之如何在JNI中使用OpenCV

安卓开发:在JNI中使用OpenCV

环境:Android Studio

Step1:在OpenCV官网下载Android SDK,如选择opencv-3.4.3-android-sdk.zip,解压得到OpenCV-android-sdk。

Step2: 新建AS工程,在Create Android Project勾选Include C++ support,这样就新建了支持JNI的工程。

安卓开发之如何在JNI中使用OpenCV_第1张图片
Step3: 在app/src/main/下新建如jniLibs文件夹,将之前解压的OpenCV-android-sdk文件夹下的sdk/native/jni中的include文件夹和sdk/native/libs下的所有文件夹复制到jniLibs文件夹下,这样以后代码传播就不需要重新添加opencv路径。

Step4:打开app下的CMakeLists.txt,对其进行相关配置。

Step5:在main/cpp/native-lib.cpp下添加opencv相关头文件,如:

#include

#include

Step6:新建一个native静态方法类,用于添加与java交互的native函数,并在其中加载对应库:

安卓开发之如何在JNI中使用OpenCV_第2张图片

注:新建的native方法可以将光标放在函数名上,按下Alt+Enter自动在对应cpp下构建。

基本将输入格式转换一下,和C/C++使用一样,具体参考Java数据类型与C数据类型转换表,对应:

Java文件中声明:

public static native void getGrayImg(Object img);

在native文件中对应:

extern “C” JNIEXPORT void JNICALL

Java_com_sprocomm_edu_androidenvconfig_utils_NativeUtils_getGrayImg(JNIEnv *env, jclass type,  jobject img) { }

注:对应C++,需要extern “C”,函数名为包名+函数名,若包含_,如函数名为get_img,则对应函数为get_limg。

你可能感兴趣的:(Android,OpenCV)