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

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

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

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

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

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

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

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

63a6287ac8f0c6732eb25e21ba2bbe96.png

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

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

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

0705d0a7376c8ba9039457ea7c5efd62.png

c8d1242071e415b0344bd24957a40e80.png

0f35af56f501d091160eb503ff978dba.png

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

1dcc9d2b8937c1522cc24b425cdf514c.png

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值