Android-OpenCV 基础讲解

一、初识Android-OpenCv

1,Opencv

OpenCv是一个开源的基于BSD许可的库,拥有数百种计算机视觉算法。OpenCv具有模块化的结构,这意味着开发包由多个模块组成,具体如下:
核心功能:定义了基本的数据结构和基本功能,便于其他模块调用。
图像处理:包含了很多对图像进行操作的算法,例如:几何变换,直方图统计,颜色空间转换等。
影像处理:一个对视频分析的模块,可实现动作判定,背景弱化,目标追踪算法等。
3D校准:基于多视图的几何算法,屏幕和立体摄像机校准,立体匹配算法,3D元素重建。
平面特征:对图像中特征的提取。
对象侦查:用于识别对象的算法,例如:脸、眼睛、杯子、人等。
。。。。。

2,Android-OpenCv 参考.

Android是一个基于Linux内核的开源操作系统,主要使用的是Java语言。Android-OpenCV就是使用Java语言实现的OpenCV。在Android平台中开发OpenCV程序,必须安装以下软件:
1,Java jdk; 2,Android SDK;3,Android SDK components;4,Android studio 编译器;5,OpenCV Manager;
备注:1)在安装Android Studio时,需要预留10G以上的存储空间。
2)Android平台也可以使用C++进行开发(本章不做过多讲解)。
3)OpenCV Manager时一款Android服务,用来在用户设备撒花姑娘管理OpenCv库的二进制文件,提供数据的贡献,对所支持的平台都会有硬件优化,减少内存使用参考.

二、引入Android-OpenCV

1、OpenCv官网下载Android版本的OpenCv到本地

在这里插入图片描述

2、创建工程(略)
3、以第三方模块的方式,引入Opencv

在这里插入图片描述在这里插入图片描述在这里插入图片描述

4,把新引入的opencv模块和工程进行链接

在这里插入图片描述在这里插入图片描述引入完成后,后台会报一个错误,点击该错误,在打开的文件中,注释掉相应代码即可。
在这里插入图片描述在这里插入图片描述最后,修改OpenCV模块的版本与app版本一致。
在这里插入图片描述修改成如下:
在这里插入图片描述重新编译。

5,项目中接入OpenCV模块

进入官网下载的android-opencv的文件夹,复制对应位置的文件
在这里插入图片描述这些文件夹都是一件编译好的二进制so文件,分别对应文件夹名称的安卓架构,若手机架构为x86的,那么我们只需要引入x86的文件夹到工程中的libs文件夹中。
在这里插入图片描述然后,在app对应的build.gradle中,添加如下的模块。
在这里插入图片描述最后,在主Activity中,初始化OpenCV。
在这里插入图片描述

6,验证OpenCV是否引用成功

编译时,后台输出onCreate: Success,那么就表示引用成功。

三、一些常用的OpenCV图像处理方法

1)颜色转换
例如:灰度转换
Imgproc.cvtVolor(src, des, Imgproc.COLOR_BGR2GRAY)
2)滤波操作
例如:均值滤波
Imgproc.blur(src, des, new Size(15,15),new Point(-1,-1), Core.BORDER_DEFAULT);
中值滤波
Imgproc.medianBlur(src, des, 15)
自定义边缘锐化滤波
Mat k = new Mat(3,3,CvType,CV_32FC1);
float[] data = new float[]{0,-1,0,-1,5,-1,0,-1,0};
k.put(0,0,data);
Imgproc.filter2D(src, dex, -1, k);
3)形态学变化
例如:闭运算
Mat kernel = Imgporc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(25, 25), new Point(-1,-1));// 返回一个指定尺寸和结构的元素 第一个参数规定Mat的形状(正方形,椭圆,交叉形)
Imgproc.morphologyEx( src, des, Imgproc.MORPH_CLOSE, kernel);
二值化
Imgproc.threshold(src, des, 100, 255, Imgproc.THRESH_BINARY);
。。。。。。

四、凸包检测

1)把需要进行凸包检测的图片放到res下面的drawable中
在这里插入图片描述2)为button绑定一个点击事件
在这里插入图片描述3)凸包提取操作(读取待处理图片、图像预处理、形态学变化、轮廓发现与凸包提取、结果展示)、具体请看代码
4)结果展示
在这里插入图片描述

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值