Android studio项目中使用JNI调用opencv的c++程序

前言

opencv虽然有java版本,但是对于轮廓,点等数据结构和c++版本不一样,这给移植带来了大量的工作量。好在java有JNI(Java Native Interface)可以调用c++函数。

本文主要介绍如何在安卓手机APP项目中调用用c++写的通过opencv处理图像的算法。使用的开发IDE是Android studio。

准备工作

首先新建c++支持的手机项目。
然后参考https://blog.csdn.net/qq_36992688/article/details/79214273,下载OpenCV-android-sdk。

复制文件

在工程目录下的 app/src/main 下面新建两个文件夹,分别是cpp和jniLibs,如果有就不用新建。
然后把OpenCV-android-sdk\sdk\native\libs中内容拷贝到jniLibs中
最后把OpenCV-android-sdk\sdk\native\jni中的include文件夹拷贝到cpp中。

修改Cmakelist.txt

在Cmakelists中添加以下内容

set(libs "${CMAKE_SOURCE_DIR}/src/main/jniLibs")
include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/include)
add_library(libopencv_java3 SHARED IMPORTED )
set_target_properties(libopencv_java3 PROPERTIES 
      IMPORTED_LOCATION "${libs}/${ANDROID_ABI}/libopencv_java3.so")

修改target_link_libraries中内容为:

target_link_libraries( native-lib  android log  libopencv_java3  ${log-lib})

添加头文件和命名空间

在native-lib.cpp中添加如下内容

#include <opencv/cv.h>
#include <opencv2/opencv.hpp>
using namespace cv;

这样就可以在native-lib.cpp中使用opencv的函数:

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页