首先写在最前面,关于本文所涉及的技术,笔者所掌握的比较有限,写这样的文章也只是通过笔者自身所知道的一些知识内容,来对图像处理这一块领域的一部分进行简单的介绍,而并不是写研究论文。所以文章内不会出现太多复杂的专业性词汇和知识点,笔者也尽量使用谁都看得懂的文字来进行说明。另,由于各国对于这方面的技术的称呼不一,所以本文中可能会交叉出现“机器视觉”和“图象处理”的字眼,按照同一个技术来理解即可。

说白了,图像处理技术源于人类的“视觉”,我们在平时生活中通过眼睛获取了大量的视觉情报,然后大脑再对这些信息进行处理,反馈。再细节一点来说,就是一个三维物体的可见部分投影到了视网膜上,然后人们再通过投影到视网膜上的二维的像,来对该物体进行三维理解。比如去理解该物体的形状,大小,颜色,质地,离开自己的距离远近,运动状态等等。不难想象失去视觉将会是一种多苦逼的生活。

机器视觉的应用范围也很广阔,例如生产自动化中的产品质量控制,成品检验,工况控制。再例如监视摄像头的人或物的识别,跟踪。还有包括自动驾驶等等等等。于是可能有些同学就会略好奇,这当中到底是怎样一个原理来运作的,下面就介绍这个领域的技术的一些基础内容。

机器视觉简单来说主要分成三部分:图像(或影像)的获取、图像的处理和分析、输出或显示。也就是分别对应人类视觉观察行为的“看见”“理解”和“反馈”。而其中最为重要的,则是第一步,也就是图像的获取。因为一个好的图像,将会大大减少分析处理的难度和时间,增加分析结果的可靠性和效率性。简单举例来说的话,就是比如要考虑设置多少个摄像头,分别设置在什么角度,什么位置,什么距离。其次是摄像头像素的选择,焦距光圈调整的设置,摄像环境的布置(背景颜色等)。最后非常重要的就是光源的选择。不同的被拍摄对象都具有不同的性质,比如易反光,而且不同的检测部位也会对光源产生不同的需求,比如多光源消除阴影,这方面非常讲究,而这里就不具体分开来说了,不然会出现很多略专业性的内容。

接下来介绍图像处理结束中的一部分基础内容:灰度图和二值化。首先要说明的是,灰度图和黑白图是不同的。黑白图中只有黑色和白色两种颜色,而灰度图中除了黑色与白色以外,中间还有很多级的颜色深度。用于显示的灰度图像通常用每个采样像素 8 位的非线性尺度来保存,这样可以有 256 级灰度。通俗点来说,就是说一个像素的点的颜色是0~255中的一个数字,这代表着这个点的颜色深度,而值为0则是黑色,255则是白色。这种精度刚刚能够避免可见的条带失真,并且非常易于编程。而在有些领域则会需要用到更高的精度,比如每个采样 16 位即 65536 级。

于是第二个概念——二值化。前面已经说了灰度图中每一个点的颜色都是0~255中的某个数字,而二值化,就是设置一个阈值(也称临界值),把大于这个临界灰度值(即阈值)的像素灰度设为灰度极大值,把小于这个值的像素灰度设为灰度极小值,从而实现图像二值化。比如设置阈值为100,则颜色深度是0~100的都设为0,颜色深度是101~255的都设为1,最后出来的就是只有0和1两个值的黑白图。

下面这图很形象地说明了三种图像:RGB彩色照片,灰度图像,黑白图像。

图像处理中的基础方法之一,就是边缘检测。边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。通俗点来说就是从一幅图像中,检测出所要分析的对象的边缘位置所在。而检测的依据也多种多样,例如通过颜色深度的不连续来判别。比如白色背景中放一个黑色的圆,在图像中逐个像素搜索的时候,一旦到了黑圆的边缘,检测到的像素的颜色深度值(前面说的那个0~255中的数字)就会发生阶跃性的变化,随便说一个数字就比如之前检测到的都是白色背景范围内的点,数值大概都在200多左右,一下子检测到了一个50左右数值的点,那就是黑圆的边缘了。

图像边缘检测大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。而进行边缘检测的算法也有很多,对图像进行处理的方式也不同,上面所提到的只是为了便于描述,而举了最简单的模型例子。

说了这么多理论性的东西,最后举一个简单的应用型例子。检测对象是白色的一次性纸杯,而检测目的则是检验该纸杯的杯口圆度是否符合标准,别是椭圆或者被捏扁了的之类的。

上面三幅图分别是从上往下拍摄的杯口RGB彩色照片,经过处理的灰度图和二值化后的黑白图。而具体的检测方法,就是先将图片经过一系列处理之后,获得二值化后的杯口图,然后通过Canny算子进行边缘提取,得到下图。

接着获取圆心坐标,计算这个边缘上每一个点到圆心的距离,并且把计算结果输入矩阵。最后计算一下边缘上所有点到圆心的距离的方差,并以此作为判断杯口圆度是否符合标准的依据。若方差小于设定值,则为合格品,弱大于设定值,则为不合格。

所以说到底,机器视觉和图像处理技术并不是多神奇的技术。限于篇幅,这次就先介绍这些。

android图片浏览远近,机器视觉与图像处理技术的简单介绍相关推荐

  1. android图片浏览远近,快图浏览编辑图片方法介绍_怎么编辑图片_3DM手游

    既然是图片管理工具,那么快图浏览肯定也是少不了图片编辑功能的.如何使用快图浏览编辑图片呢?下面小编带来的详细的使用方法,有需要的小伙伴一起来看看吧! 编辑照片方法介绍: 1.第一步,下载安装快图浏览, ...

  2. android图片浏览功能,怎么在Android应用中实现一个网页图片浏览功能

    怎么在Android应用中实现一个网页图片浏览功能 发布时间:2020-12-05 17:28:31 来源:亿速云 阅读:80 作者:Leah 本篇文章给大家分享的是有关怎么在Android应用中实现 ...

  3. 电容屏物体识别_电容屏物体触控识别技术的简单介绍

    (文章来源:触宇光电) 物体识别是基于触控屏的标签识别交互系统,由触控屏和实物标签Marker,软件底层识别程序和软件上层效果程序,支持多个Marker同时显示,将Marker嵌入或粘合到待识别物体的 ...

  4. 黑洞图片的背后,是图像处理技术的成熟!

    前言: 就在昨天,人类历史上第一张黑洞图像被"拍"出来了. 请配戴眼镜查看高清大图 尽管黑洞的第一张真身照是一张模糊.不规则的圆环,但这张照片的背后凝结了目前最先进的探测技术,整个 ...

  5. Android 图片浏览功能简单实现(画廊效果实现,支持放大缩小)

    前言 APP日常小功能整理,别小瞧小功能的实现和积累,万一哪天使用到了,直接Ctrl+C和Ctrl+V轻松实现是不是节约了时间呢?同事也是日常Andro基础知识的复习点,哈哈哈! 首先上一波gif动态 ...

  6. android 图片浏览控件_Android自动化测试23--Appium同步点

    Android自动化测试23 转帖请注明出处!谢谢 Appium同步点 在自动化测试过程中,需要解决测试脚本执行速度和被测试软件执行速度相匹配的问题,可以用同步点来解决.同步点是自动化测试工具中的一个 ...

  7. php 图片相似度对比算法,图像处理技术之图片相似度比较

    Today,工作中发现需要去除图片上的水印,由于涉及文章太多,手动重新编辑很慢且容易出错.于是想到了使用脚本比较全部图片的相似度,然后替换文件的方式来达到去除水印效果.在完成这项工作前,我们需要找到所 ...

  8. 请列举中图片内存处理的六种方法,并简单介绍

    1.使用软引用 运用Java的软引用,进行图片缓存,将经常使用的图片对象放到缓存里,避免反复加载 2.避免垃圾对象的产生 例如在 ListView 的应用中,复用 convertView 等.若是应用 ...

  9. 以太网供电技术/有源以太网技术POE简单介绍

    POE (Power Over Ethernet)指的是在现有的以太网布线基础架构不作任何改动的情况下,在为一些基于IP的终端(如IP电话机.无线局域网接入点AP.网络摄像机等)传输数据信号的同时,还 ...

最新文章

  1. 先进机器人系统中的关键技术
  2. Task04:青少年软件编程(Scratch)等级考试模拟卷(一级)
  3. 因特尔显卡自定义分辨率_蓝宝石RX 5600XT 6G D6 白金版OC显卡评测:两千价位段好选择...
  4. golang rpc的两种调用方法
  5. ai模仿声音软件_如何开发人工智能类的软件?人工智能让我们的生活更加便捷!...
  6. 几个Linux命令输出的各列含义
  7. TP的依赖注入:将类类型的对象作为参数注入到当前类中
  8. Java并发编程的艺术,解读并发编程的优缺点
  9. Tableview中Dynamic Prototypes动态表的使用
  10. wpa_supplicant 无线网络配置
  11. Angular 个人深究(四)【生命周期钩子】
  12. 清除SVOHOST.EXE的方法
  13. linux uart中断程序,linux 串口中断实现
  14. HDU-1867A + B for you again(kmp)
  15. 供应商TOP10榜单!车载前装激光雷达进入规模化上车关键期
  16. C语言 基础40道编程题库汇总
  17. 计算机信息检索自考知识点,计算机信息检索02139自考资料.docx
  18. 【图文详解】RE文件管理器手工精简Android系统
  19. cdr三角形转化为圆角_cdr怎么把直角变成圆角
  20. 中元节,会吃的民族带你了解“鬼节”的习俗

热门文章

  1. 汇编实验之用debug命令查看寄存器和内存中的内容
  2. 史上最全的nginx安全访问控制配置
  3. 网购进一步省钱的方法分享
  4. c语言 中英文文献,外文文献中英文翻译嵌入式.doc
  5. 控件 ListView1 的类 MSComctlLib.ListView 不是一个已加载的控件类
  6. 工业液晶触摸屏检测修复有哪些方式?
  7. Java实现窗体爱心移动特效
  8. Qt 之 show,hide,setVisible,setHidden,close 等小结
  9. 【题解】【CF1041A】Heist
  10. socket编程中的 htons()