Android:Android Studio导入OpenCV(Android项目)
在使用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文件

Android:Android Studio导入OpenCV(Android项目)的更多相关文章
- [Android] Visual Studio Emulator For Android 相关
1.修改设备名 C:\Users\[用户名]\AppData\Local\Microsoft\VisualStudioEmulator\Android\Containers\Local\Devices ...
- 使用Android Studio导入第三方库项目
在使用Android Studio开发时,用到了第三方库SlidingMenu(现在已经不推荐使用了),尽管如此,但具体怎么导入第三方库还是需要知道的,在查阅各种资料后,知道了一种比较容易可行的方法 ...
- 用Android studio进行 OpenCV 开发的第一个项目
我的天! 折腾了好久终于搭建成功了第一个项目. 项目环境: Windows 7 家庭普通版 64位 Android studio 1.5.1 OpenCV-2.4.9-android-sdk 基于 ...
- 将AOSP源码导入到Android Studio进行查看
生成iml和ipr文件 source build/envsetup.sh lunch aosp_x86-eng # 或者直接输入lunch,然后选择对应的target make idegen deve ...
- Android Studio导入Android 4.4.4r1的源码
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/70339471 一.环境配置 1.ubuntu 14.04.5 x64bit 2.j ...
- Android学习七---Hello OpenCV samples
创建一个能够使用OpenCV JavaCameraView的应用程序来了解基于OpenCV java API 的应用程序的开发流程.有了Android的基础,在程序中需要修改的几个地方1.activi ...
- 高强度学习训练第二天总结:Opencv+Android+CameraView小demo
前言:网上已经有很多人将Opencv集成进Android项目中了.因此我只给大家看Gradle文件和项目目录. 1.gradle 三个gradle script // Top-level build ...
- 【Android学习】Windows下Android环境搭建
一. JDK下载配置 直接百度,很简单. 二.android JDK下载配置 1.进入下载官网(需要FQ):https://developer.android.com/studio/index.ht ...
- Android学习十二---在android上实现图像匹配
一.效果图及功能描述 效果图 点击ShowImg后 点击match,然后点击showmatch,可以不断点击showmatch. 主要功能描述:显示在SD卡上已经存在的图片test.jpg,根据图片在 ...
随机推荐
- iOS如何提升,首先得知自己的处境!(欢迎评论留言)
聊聊行情?为什么总有人在乎旁人的看法而忽略自己的初衷?虽然iOS开发市场说不上好但也绝不算坏,想没想过那些煽风点火说iOS不行的人在做什么?真的转行从头开始?错.大错特错!在劝退你的同时他们会默默的学 ...
- 『动善时』JMeter基础 — 53、JMeter集合点功能的使用
目录 1.集合点介绍 2.同步定时器界面介绍 3.集合点的使用 (1)测试计划内包含的元件 (2)线程组元件内容 (3)HTTP请求组件内容 (4)同步定时器内容 (5)运行脚本查看结果 4.集合点设 ...
- external-attacher源码分析(2)-核心处理逻辑分析
kubernetes ceph-csi分析目录导航 基于tag v2.1.1 https://github.com/kubernetes-csi/external-attacher/releases/ ...
- 资源:Postgresql数据库下载路径
postgresql下载路径: https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
- Hibernate框架(五)面向对象查询语言和锁
Hibernate做了数据库中表和我们实体类的映射,使我们不必再编写sql语言了.但是有时候查询的特殊性,还是需要我们手动来写查询语句呢,Hibernate框架为了解决这个问题给我们提供了HQL(Hi ...
- 8 shell if else
if 语句的判断条件,从本质上讲,判断的就是命令的退出状态. 语句 语句格式 同一行书写 注意点 用例1 用例2 if 语句 if conditionthen statement(s)fi if ...
- buu firmware
一.路由器固件,给的是bin文件,要用binwalk将固件文件系统提取出来,同时binwalk的版本要完整不然解压不了文件,下面说的很清楚了. https://blog.csdn.net/QQ1084 ...
- coretext简单使用
相对于UIKit,使用coretext绘制文本效率高,具有更高的自由度,可随时插入图片,增加文本点击事件等. 1.增加文本的点击事件 思路:定义UILabel子类,设置可点击的富文本range及其他属 ...
- HCNA Routing&Switching之动态路由协议RIP
前文我们了解了动态路由的基本概念,以及动态路由和静态路由的区别,优缺点,动态路由的分类,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14995317.html ...
- 查找----python
class Solution: #顺序查找 def seq_search(self,list,num): for i in(range(len(list))): if list[i] == num: ...