android 纯native使用OpenCV

本文介绍了如何在Android Studio 4.1.3环境下,纯Native使用C++开发OpenCV,包括环境配置、OpenCV库的引入、CMakeLists配置以及解决遇到的问题。通过在app的build.gradle和CMakeLists.txt中进行相应设置,成功避免了多个库冲突和运行时错误,实现了在Android应用中纯C++调用OpenCV进行图像处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于需要,要在android应用中使用OpenCV处理图像,于是查找下网络资料,发现网上说的很多并不理想,根据自己实践,总结下。

一、纯Native使用c++开发OpenCV的环境搭配

我使用的Android studio版本为4.1.3,在菜单Tools中的SDK Manager,选择adroid sdk ,右边选择SDK Tools,勾选下面的Show Package Details,加入NDK(Native开发必须),CMake,我的选择如下(版本选一个就行了,我的有几个):

至此,环境就已经搭配好了。

二、下载OpenCV的android SDK,下载地址:

OpenCV/opencv_contrib国内快速下载 

三、建立项目

File--new Project ,选择最下面的Native C++,建立好项目后,自动有了Native支持,其中多了cpp目录,目录下还有native-lib.cpp C++源文件,CMakeLists.txt(CMake文件)。MainActivity类中有引入库的代码,此时直接运行,就能显示一个Hello world from c++,这个字符串就是从native-lib.cpp来的。

static {
        System.loadLibrary("native-lib");
    }

四、引入OpenCV库

这个时候已经完成了Native开发环境搭配,可以开始Native开发了,但是如何引入OpenCV呢?网上很多说要file--new--import module导入android sdk,其实这是使用java编写opencv才需要的,如果想纯native使用opencv开发,是不需要这步的。

1、解压下载的android sdk,把sdk--native--libs下面的四个文件夹复制到项目中,我是在src--main下面建立了一个jni目录,我把它们放jni目录下,这些是so文件,就是OpenCV库了。

2、引入头文件,把sdk--native--jni--include下的opencv2复制到cpp目录下。

OK,行了,但是android怎么知道你导入了这些呢?下面是配置。

3、告知android用到的库位置,在app的build.gradle,注意是app的那个,在android项中加入如下内容,src/main/jni就是我刚才建立的jni文件夹,里面放了so文件。

sourceSets{
        main{
            jniLibs.srcDirs=["src/main/jni"]
        }
    }

4、配置编译环境,打开CMakeLists.txt文件,加入下面内容。

<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值