OpenCV的部署

来源:互联网 发布:电脑高清录屏软件 编辑:程序博客网 时间:2024/05/18 07:22

存粹阅读,请访问OpenCV的部署

官网

官网

之前时间比较紧张,在网上找了很多文章,写了一个人脸识别的程序,也是模棱两可,今天开始抽时间系统学习一下OpenCV在Android上的使用。

OpenCV版本

后面用到的是OpenCV的2.4.11版本,据说新的3.x的版本和2.x的版本改动较大,2.x的版本学习完可以再看看与3.x版本的区别。毕竟老版本的学习资源更多一些。

SDK

我们下载完SDK以后,里面会有一个Library的库供我们使用,但是核心的功能不在这里面,它只是一个调用的工具,我们还需要安装OpenCV Manager,在下载的SDK里有一个apk的文件夹,里面是对应各个cup架构的Manager,选择对应的Manager安装就可以了。
除了安装OpenCV Manager,也可以直接在工程里添加so,但是这会使我们的APK体积大大增加,不过这不是我们要关心的,我们主要学习怎么使用OpenCV。

OpenCV的图像存储

OpenCV使用Mat对象存储图像,该对象保存了图像的行数、列数、数据等能唯一标识该图像的信息,并且可以利用该数据还原图像,不同的图像所包含的信息量也不同,例如彩色图像所包含的信息量就要比灰色图像多得多。因为灰色图是单通道的,彩色图是三通道的。

灰色图

灰色图像单通道

数字代表指定颜色的亮度
以整数表示时,取值范围是0~255,0表示纯黑色,255表示纯白色。
以浮点数表示时,取值范围是0~1,0表示纯黑色,1表示纯白色。

彩色图

彩色图像三通道

第一通道表示蓝色,第二通道表示绿色,第三通道表示红色。

OpenCV的线性滤波器

有的时候,图像信息量太大,处理的时间就会比较长(有的时候可能不需要这么信息就可以解析出来我们想要的结果了),为了解决这个问题,OpenCV提供了一个线性滤波器,可以对图片进行模糊处理。

很多线性滤波器都利用了称为的数字向量,核可以看作是沿着像素滑动的窗口,并把计算结果输出给核像素。

下面的图中,是一个3 * 3的核作用在了一副10 * 10的图像上。

核

创建OpenCV工程

Android Studio版本:2.1

  1. 创建Android Studio工程,命名为FirstOpenCVDemo
  2. 导入OpenCV Library

    File -> New -> Import Module

    导入OpenCV Library
    导入OpenCV Library

  3. 引用OpenCV Library

    引用OpenCV Library

  4. 安装OpenCV Manager

    加载OpenCV Manager,如果诶呦安装会有提示

private BaseLoaderCallback mOpenCVCallBack = new BaseLoaderCallback(this) {   @Override   public void onManagerConnected(int status) {       switch (status) {           case LoaderCallbackInterface.SUCCESS:               Log.i(TAG, "OpenCV Manager已安装,可以学习OpenCV啦。");               break;           default:               super.onManagerConnected(status);               break;       }   }};@Overrideprotected void onResume() {   super.onResume();   OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_11, this, mOpenCVCallBack);}

到此,准备工作做完,就可以在此工程上学习OpenCV了。

如果你在运行的过程中,遇到这样的问题

问题

这是SDK版本的问题,将targetSdkVersion改为19即可。

运行结果

OpenCV部署成功

源码

FirstOpenCVDemo

1 1
原创粉丝点击