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,根据图片在 ...
随机推荐
- docker配置redis6.0.5集群
docker配置redis6.0集群方案 docker安装 请直接挂载课程配套的Centos7.x镜像, docker官方建议使用CentOS7 (1)yum 包更新到最新 sudo yum upda ...
- SpringMVC(1)流程框架总体介绍
SpringMVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能MVC 模块,其功能和Strtus2 ...
- 15 shell for循环
除了 while 循环和 until 循环,Shell 脚本中还有for 循环,for 循环有两种使用形式:C语言风格的for循环与Python语言风格的for in循环,两种形式的for循环用法对比 ...
- bugKu管理员系统
先F12看看,有啥发现的,发现一段注释... 感谢那个群友分享了怎么辨别base64编码,通常是A-Z,a-z,0-9,+,/,=.最后通常有0个到2个等号,我也成功用在线解码器,确实是base64编 ...
- CG-CTF WxyVM2
一.原本以为要动调,因为出现了这个,函数太长,无法反编译 后面才知道这玩意可以在ida的配置文件里面去改,直接改成1024. 里面的MAXFUNSIZE改成1024,就可以反编译了,这个长度是超过这个 ...
- 青蛙跳台阶问题(斐波那契数列) python
一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法 class Solution: def jump(self,n): if n ==0: return 0 el ...
- 第九章 身体质量指数BMI的python实现
身体质量指数BMI:对身体质量的刻画(Body Mass Index) 国际上常用的衡量人体肥胖和健康程度的重要标准,主要用于统计分析 定义: BMI=体重(kg)/身高^2(m2) 提出问题: 实例 ...
- QT从入门到入土(二)——对象模型(对象树)和窗口坐标体系
摘要 我们使用的标准 C++,其设计的对象模型虽然已经提供了非常高效的 RTTI 支持,但是在某些方面还是不够灵活.比如在 GUI 编程方面,既需要高效的运行效率也需要强大的灵活性,诸如删除某窗口时可 ...
- 高校表白App-团队冲刺第三天
今天要做什么 今天开站立会议的时候,忽然发觉在一个完整的App上好像是有一些引导页的,比如说在第一次使用App的时候,或者是在使用App的时候会出现新手指引操作. 做了什么 通过查阅资料来学习View ...
- Redis学习——数据结构下
4.集合(集合(set)类型也是用来保存多个的字符串元素,但和列表类型不一样的是,集合中不允许有重复元素,并且集合中的元素是无序的,不能通过索引下标获取元素.) 1.命令 .集合内操作 1.添加元素 ...