Android应用开发项目式教程 课件 项目9 一目了然——计算机视觉应用.pptx

Android应用开发项目式教程 课件 项目9 一目了然——计算机视觉应用.pptx

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

项目9一目了然——计算机视觉应用

本项目学习任务OpenCV简介OpenCVJavaAPI简介

OpenCV简介开源的计算机视觉库丰富的函数:滤波、物体检测、机器学习等实时应用的开发广泛的应用领域:图像拼接、图像降噪、产品质检、人机交互、人脸识别、动作识别、动作跟踪、无人驾驶等。

OpenCV简介OpenCV使用C/C++开发,同时也提供了Python、Java、MATLAB等其他语言的接口。它可以在Windows、Linux、MacOS、Android、iOS等操作系统上运行,并且是跨平台的。2010年起,OpenCV支持在Android环境下使用

OpenCV简介OpenCV具有模块化结构,包含多个共享或静态库,提供以下模块:核心功能(core):定义基本数据结构的模块,包括密集多维数组Mat和所有其他模块使用的基本函数。图像处理(imgproc):一个图像处理模块,包括线性和非线性图像滤波、几何图像转换(调整大小、仿射和透视变形、基于通用表的重新映射)、颜色空间转换、直方图等。视频分析(video):一个视频分析模块,包括运动估计、背景减法和对象跟踪算法。

OpenCV简介OpenCV具有模块化结构,包含多个共享或静态库,提供以下模块:相机校准和3D重建(calib3d):基本的多视图几何算法、单相机和立体相机校准、物体姿态估计、立体对应算法和3D重建元素。2D特征框架(features2d):显著特征检测器、描述符和描述符匹配器。对象检测(objdetect):检测对象和预定义类的实例(例如人脸、眼睛、杯子、人物、汽车等)。高级GUI(highgui):一个简单易用的UI框架。视频I/O(videoio):易于使用的视频捕获和视频编解码器接口。其他一些辅助模块,例如FLANN和Google测试包装器、Python绑定等。

OpenCVJavaAPI简介Android中主要使用的是OpenCV的JavaAPI,常用的有这几个类:Mat类:主要用来定义Mat对象,切割Mat对象。常规的Bitmap位图在OpenCV中都需要转换为Mat。Core类:主要用于Mat的运算,提供了很多运算功能的静态函数。ImgProc类:主要用于图像的处理,也提供了很多处理功能的静态函数。Utils类:主要用于Mat和bitmap之间的转换。

OpenCVJavaAPI简介1.Mat类Mat类是一个用于保存图像数据或矩阵数据的数据结构,能够用来保存实数或复数的向量、矩阵,灰度或彩色图像,立体元素,张量以及直方图。Mat对象中包含了图像的各种基本信息与图像像素数据。Mat是由头部与数据部分组成的,其中头部还包含一个指向数据的指针,可以把Mat视作图像矩阵。

OpenCVJavaAPI简介Mat类常用方法:Utils.bitmapToMat():将Bitmp转化为Mat格式Utils.loadResource():直接获取对应图片的MatUtils.matToBitmap():Mat转Bitmap的方法release():Mat内存释放

OpenCVJavaAPI简介2.颜色转换与二值化计算机视觉中经常涉及到颜色转化,从一个颜色空间转换到另一个颜色空间或者图像的灰度化等。OpenCV中使用cvtColor()方法进行颜色转换操作,示例代码如下:Bitmapbitmap=BitmapFactory.decodeResource(getResources(),R.drawable.lena);

Utils.bitmapToMat(bitmap,src);

Imgproc.cvtColor(src,dst,Imgproc.COLOR_BGRA2GRAY);

Utils.matToBitmap(dst,bitmap);

OpenCVJavaAPI简介图像二值化是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程。图像二值化有个关键参数是黑白点的阈值,整张图片中高于阈值的点都置为255,低于阈值的点都置为0,就可以呈现出明显的二值黑白效果。

OpenCVJavaAPI简介阈值的确定有两种方法:手动指定和自动计算。手动指定阈值是指由开发者手动确定一个阈值,在一些专用场景下可以通过实验效果调整。OpenCV也提供算法来自动计算阈值,包括全局阈值计算和自适应阈值计算两种。全局自动计算阈值的方法有OTSU与Triangle,这两种方法都是以图像直方图统计数据为基础来自动计算阈值的。自适应阈值计算方法,它们是基于局部图像自动计算阈值的方法,有C均值与高斯C均值两种。图像二值化的示例代码如下:Imgproc.threshold(src,dst,125,255,Imgproc.THRE

您可能关注的文档

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档