Android:Android Studio导入OpenCV(Android项目)
阅读原文时间:2023年07月08日阅读:1

在使用OpenCV之前,Android必须先下载ndk,因为OpenCV使用了native代码,这里建议Android Studio创建C++项目来写OpenCV的内容

1、首先在官网下载OpenCV第三方包

下载链接:https://opencv.org/releases/

2、查看下载后的文件目录

samples文件夹里面是一些样例,sdk文件夹是我们需要的第三方包

此时将整个sdk文件夹导入到项目中也是可以的,但是900M的文件夹会让项目很庞大,所以我们要导入项目的是sdk包下的一个java包

3、在项目中导入第三方包

点击Next,然后点击确认进行导包

将java代码作为模块导入之后,我们还得导入配置包,在sdk文件夹-->native文件夹-->libs文件夹里面的四个以os为后缀的文件

在OpenCV模块下创建libs目录,然后将四个文件复制进去。

这四个文件加起来有100M了,还是挺庞大的,这里我知道了自己手机需要的是哪一个文件夹,最后我只留下了第一个文件

4、修改项目配置

我们要修改OpenCV包下的  build.gradle  文件夹,让里面的sdk版本与项目一致

将文件中的application改为 library,并且将applicationId删掉,因为我们要做的是引用这个包

然后在app目录的build.gradle文件的依赖中导入OpenCV,括号里面是冒号和刚才导入模块的命名

我们将libs文件加入到项目中,还得让编译器知道,所以要修改app的build.gradle文件(如果libs放在opencv包里就修改opencv包里的文件),才能运行OpenCV

5、在项目中使用OpenCV测试一下

查看是否成功,如果是使用Android普通项目肯定是不成功的,运行后会报错,因为少了一个运行OpenCV很重要的文件  libc++_shared.so

接下来我们通过C++项目(普通的Android项目没有)自动创建这个文件

6、创建C++项目

这是一个全新的项目,需要导入OpenCV第三方包和修改build.gradle文件,也就是再做一遍上面的流程

c++项目的app目录下带有一个libs文件夹,所以将原来在opencv库下libs文件夹的内容复制到app目录下(libs包换位置后,记得修改app目录的build.gradle文件),文件结构如下

所以文件要加上这两段,使用C++项目在build完了之后就会创建  libc++_shared.so 这个文件(clean之后会删除)

8、完成

按理说这样子我们的项目就可以运行了,也解决了没有      libc++_shared.so  这个文件的问题

如果你不想使用C++项目,在这个C++项目的文件里面已经创建了一个  libc++_shared.so文件,去把它复制到普通Android项目的opencv包的libs目录对应的文件夹就可以了

复制的时候要找准对应版本的libc++_shared.so文件