一个好的操作平台应该能够在最短的时间内处理图像,好的机器视觉软件应该能够很容易的在一系列的案例中应用,好的相机和镜头应该是拥有最小的畸变和足够的分辨率。但是,好的机器视觉照明应该有什么特点呢?在图像的分析处理中,光源的角色又是什么呢?

判断机器视觉的照明的好坏,首先必须了解什么是光源需要做到的!显然光源应该不仅仅是使检测部件能够被摄像头“看见”。有时候,一个完整的机器视觉系统无法支持工作,但是仅仅优化一下光源就可以使系统正常工作。

对比度:对比度对机器视觉来说非常重要。机器视觉应用的照明的最重要的任务就是使需要被观察的特征与需要被忽略的图像特征之间产生最大的对比度,从而易于特征的区分。对比度定义为在特征与其周围的区域之间有足够的灰度量区别。好的照明应该能够保证需要检测的特征突出于其他背景。

亮度:当选择两种光源的时候,最佳的选择是选择更亮的那个。当光源不够亮时,可能有三种不好的情况会出现。第一,相机的信噪比不够;由于光源的亮度不够,图像的对比度必然不够,在图像上出现噪声的可能性也随即增大。其次,光源的亮度不够,必然要加大光圈,从而减小了景深。另外,当光源的亮度不够的时候,自然光等随机光对系统的影响会最大。

鲁棒性:另一个测试好光源的方法是看光源是否对部件的位置敏感度最小。当光源放置在摄像头视野的不同区域或不同角度时,结果图像应该不会随之变化。方向性很强的光源,增大了对高亮区域的镜面反射发生的可能性,这不利于后面的特征提取。在很多情况下,好的光源需要在实际工作中与其在实验室中的有相同的效果。 好的光源需要能够使你需要寻找的特征非常明显,除了是摄像头能够拍摄到部件外,好的光源应该能够产生最大的对比度、亮度足够且对部件的位置变化不敏感。光源选择好了,剩下来的工作就容易多了! 机器视觉应用关心的是反射光(除非使用背光)。物体表面的几何形状、光泽及颜色决定了光在物体表面如何反射。机器视觉应用的光源控制的诀窍归结到一点就是如何控制光源反射。如何能够控制好光源的反射,那么获得的图像就可以控制了。因此,在机器视觉应用中,当光源入射到给定物体表面的时候,明白光源最重要的方面就是要控制好光源及其反映。

光源可预测:当光源入射到物体表面的时候,光源的反映是可以预测的。光源可能被吸收或被反射。光可能被完全吸收(黑金属材料,表面难以照亮)或者被部分吸收(造成了颜色的变化及亮度的不同)。不被吸收的光就会被反射,入射光的角度等于反射光的角度,这个科学的定律大大简化了机器视觉光源,因为理想的想定的效果可以通过控制光源而实现。

物体表面:如果光源按照可预测的方式传播,那么又是什么原因使机器视觉的光源设计如此的棘手呢?使机器视觉照明复杂化的是物体表面的变化造成的。如果所有物体表面是相同的,在解决实际应用的时候就没有必要采用不同的光源技术了。但由于物体表面的不同,因此需要观察视野中的物体表面,并分析光源入射的反映。

控制反射:本文前面提到了,如果反射光可以控制,图像就可以控制了。这点再怎么强度也不为过。因此在涉及机器视觉应用的光源设计时,最重要的原则就是控制好哪里的光源反射到透镜及反射的程度。机器视觉的光源设计就是对反射的研究。在视觉应用中,当观测一个物体以决定需要什么样的光源的时候,首先需要问自己这样的问题:“我如何才能让物体显现?”“我如何才能应用光源使必须的光反射到镜头中以获得物体外表?” 影响反射效果的因素有:光源的位置,物体表面的纹理,物体表面的几何形状及光源的均匀性。

光源的位置:既然光源按照入射角反射,因此光源的位置对获取高对比度的图像很重要。光源的目标是要达到使感兴趣的特征与其周围的背景对光源的反射不同。预测光源如何在物体表面反射就可以决定出光源的位置。

表面纹理:物体表面可能高度反射(镜面反射)或者高度漫反射。决定物体是镜面反射还是漫反射的主要因素是物体表面的光滑度。一个漫反射的表面,如一张不光滑的纸张,有着复杂的表面角度,用显微镜观看的时候显得很明亮,这是由于物体表面角度的变化而造成了光源照射到物体表面而被分散开了。而一张光滑的的纸张有光滑的表面而减小了物体表面的角度。光源照射到光源的表面并按照入射角反射。

表面形状:一个球形表面反射光源的方式与平面物体不近相同。物体表面的形状越复杂,其表面的光源变化也随之而复杂。对应一个抛光的镜面表面,光源需要在不同的角度照射。从不同角度照射可以减小光影。

光源均匀性:不均匀的光会造成不均匀的反射。均匀关系到三个方面。第一,对于视野,在摄像头视野范围部分应该是均匀的。简单的说,图像中暗的区域就是缺少反射光,而亮点就是此处反射太强了。不均匀的光会使视野范围内部分区域的光比其他区域多。从而造成物体表面反射不均匀(假设物体表面的对光的反射是相同的)。 均匀的光源会补偿物体表面的角度变化,即使物体表面的几何形状不同,光源在各部分的反射也是均匀的。

光源技术的应用:光源技术是设计光源的几何及位置以使图像有对比度。光源会使那些感兴趣的并需要机器视觉分析的区域更加突出。通过选择光源技术,应该关心物体使如何被照明及光源是如何反射及散射的。下面是六种照明技术:通用照明,背光,同轴(共轴),连续漫反射,暗域及结构光。

一般目的的照明:通用照明一般采用环状或点状照明。环灯是一种常用的通用照明方式,其很容易安装在镜头上,可给漫反射表面提供足够的照明。

背光照明:背光照明是将光源放置在相对于摄像头的物体的背面。这种照明方式与别的照明方式有 很大不同因为图像分析的不是发水光而是入射光。背光照明产生了很强的对比度。应用背光技术时候,物体表面特征可能会丢失。例如,可以应用背光技术测量硬币的直径,但是却无法判断硬币的正反面。

同轴照明:同轴照明是与摄像头的轴向有相同的方向的光照射到物体的表面。同轴照明使用一种特殊的半反射镜面反射光源到摄像头的透镜轴方向。半反射镜面只让从物体表面反射垂直于透镜的光源通过。同轴照明技术对于实现扁平物体且有镜面特征的表面的均匀照明很有用。此外此技术还可以实现使表面角度变化部分高亮,因为不垂直于摄像头镜头的表面反射的光不会进入镜头,从而造成表面较暗。

连续漫反射照明:连续漫反射照明应用于物体表面的反射性或者表面有复杂的角度。连续漫反射照明应用半球形的均匀照明,以减小影子及镜面反射。这种照明方式对于完全组装的电路板照明非常有用。这种光源可以达到170立体角范围的均匀照明。

多轴照明:在许多应用中,为了使视野下不同的特征表现不同的对比度,需要多重照明技术

选择光源:一旦选择了照明技术,接下来就是选择何种光源的问题了。光源应该照明形状的需要,需要有足够的均匀度,且稳定性能要好。在机器视觉应用中选择光源应该考虑下面的有关光源的特性: 光谱特征:光源的颜色及测量物体表面的颜色决定了反射到摄像头的光能的大小及波长。白光或某种特殊的光谱在提取其他颜色的特征信息时可能使比较重要的因素。当分析多颜色特征的时候,选择光源的时候,色温是一个比较重要的因素。例如,卤灯更多表现为黄色,相比氙灯显现蓝色。 效率:有些光源效率很高,相对于能量的消耗,其散发出更加多的光能,例如荧光灯。而钨灯,产生相当多的热量,能量消耗也很大。效率不高的光源产生局部过热,浪费很多。一般,光源的温度越高,其寿命就会缩短,其消耗的能量就相对较高。

寿命特性:光源一般需要持续多小时的使用。一个寿命为1000小时的光源,在两班运转的情况下,只能持续一个星期左右。更换光源灯泡的维护就必须了。LED光源是比较流行的光源,其可以连续工作很长时间,大约可以连续操作100,100小时。对多数光源,随着光源的老化,光源释放的能量会减少,根据光源类型的不同,光能减小可能速度比较满,也可能很快很明显。光能输出的变化可能也影响着光谱特性。当光源的老化速度影响到图像处理结果的时候就可以注意光源的变化了。

费用:许多光源需要在视觉系统的使用过程中更换。如果光源很昂贵,在机器视觉的使用过程中可能会增大后期费用。另外,光源应该在市场上较容易购买。

计算机视觉 java 如何选择_计算机视觉中光源的选择相关推荐

  1. python调用按键精灵插件_开发中IDE的选择?如何在VsCode上配置CC++,Java,Python环境...

    前言 工欲善其事必先利其器,这也是老生常谈的事情了.在做日常开发中,让我感受到一个顺手的开发工具的重要性.截至目前对于不同语言自己也使用过很多开发工具,有一些简单的编辑器例如:notepad++.Ed ...

  2. java美元兑换_代码中的美元$

    这个题目其实有点标题党了,其实本篇文章主要内容应该是说"代码中的美元符号(dollar sign)".想总结一下我所看到的美元符号在代码中的起到的作用,当然了并不是说它作为格式化字 ...

  3. msflexgrid允许大选择_工程中要用多大的电线电缆?一文教你怎么算

    一.电机功率与配线直径计算 首先要计算100KW负荷的线电流. 对于三相平衡电路而言,三相电路功率的计算公式是:P=1.732IUcosφ. 由三相电路功率公式可推出: 线电流公式:I=P/1.732 ...

  4. java 初始化系统参数_系统中参数的初始化 参数在系统中配置

    1.我们来看这个需求,例如:我们上传图片.上传附件 需要放在服务器上的一个目录上,该目录在不同的操作系统下是不同的.因为我们在写java代码的时候就不能写死. 这个时候我们就要用到系统参数.在界面上自 ...

  5. java 正则表达式 反向_正则表达式中的数量表示符、反向引用、零宽断言、以及java中的用法...

    在表示数量时,如果一个正则表达式X,后面没有加表示数量的符号,那就默认出现一次.如果指定需要出现n次,那就用{n},例如a{n},就是匹配a出现n次的.a{n,}表示a出现至少n次的,而这个时候就会默 ...

  6. java cpu分配_容器中的Java:资源分配准则

    短短几年内,容器就改变了软件行业的面貌.也许您已经到了在容器中运行Java的地步.那很棒!不幸的是,关于容器化Java应用程序的CPU和内存使用率,还有一些事情要注意,我将在下面概述. 本文假定总体上 ...

  7. java erlang 游戏_游戏中最近可达点(用erlang写一个简单算法)

    游戏中有点击障碍点,人物走到离障碍物最近点的算法.我这给一个简单的算法,这个问题可以复杂化,另外这个问题应该由客户端来完成. 如图,玩家在b点,点击了a点,a在一个障碍区(红色,玩家只能在障碍区外移到 ...

  8. java面试分为_【中软国际Java面试】面试分为两轮。-看准网

    面试分为两轮. 面试分为两轮.一面技术面,看了往年的面经,感觉真的好水,不过我面试的时候感觉还是有点难度的,范围很广.数据结构和算法问了8大排序,问了有哪些数据结构,快排的思想,基准怎么找,二分法查找 ...

  9. java 耦合性_软件工程中的耦合性和解耦合性是什么意思?

    我也来通俗地讲一讲,说的不好请勿喷. 简单概括:耦合就是程序中的一部分跟其他部分之间的关系.解耦合就是把必要的耦合理顺,同时尽量减少不必要的耦合(这一句其实就是高内聚低耦合的通俗解释). 如何看待耦合 ...

最新文章

  1. 主题简介 ASP .NET
  2. 我又踩坑了!如何为HttpClient请求设置Content-Type标头?
  3. uiautomatorviewer 查看元素新思路
  4. 器件旋转45度_【速评3+1】第十一期:朱雨玲45,日版CL,Rakza Z,国变等
  5. numpy将所有数据变为0和1_PyTorch 学习笔记(二):张量、变量、数据集的读取、模组、优化、模型的保存和加载...
  6. 如何自动生成PDF书签
  7. python与排版设计_python 排版
  8. 计算机软件行业新三板企业,2017福布斯值得关注的新三板企业榜:软件行业、互联网服务占据大半...
  9. AutoPatch java_AutoPatch 成功, 加载逻辑修复成功, 但 patch.jar 反编译异常
  10. uniapp中text-indent不起作用,uniapp首行缩进不管用如何解决?
  11. OneZero第四周第二次站立会议(2016.4.12)
  12. D-OJ刷题日记:一元多项式的运算 题目编号:463
  13. BaseFX 实习小记(终)
  14. Uncle Sam 山姆大叔
  15. JAVA系列之JVM优化
  16. python中对象的赋值、浅拷贝和深拷贝
  17. JSP程序设计——手机销售网后台设计
  18. mac笔记本部分按键失灵
  19. 基于MRS-ClickHouse构建用户画像系统方案介绍
  20. PXE+KickStart自动化安装Linux系统

热门文章

  1. MaNGOS 下载,编译,配置和运行的基本步骤
  2. 假如有一次重来的机会,你选择做一位硬件工程师还是软件工程师?
  3. workerman应用ssl
  4. 史上最全面的 ADB命令 及用法 大全
  5. 杰理之iis作为主机如何关掉mclk【篇】
  6. 15.Java方法覆盖
  7. Camtasia局部放大特效教程
  8. Ceph测试系列(三):Ceph集群(3 osd节点)dd及rados bench 性能测试
  9. Numpy练习小例题(1)--穷人借钱
  10. Exception in thread main java.lang.NoClassDefFoundError: antlr/ANTLRException 解决方法