如何选择视觉CV光源颜色
如何选择视觉CV光源颜色
一.光源颜色分类
光源颜色的选择对机器视觉光源有什么影响及意义呢,常用的光源颜色有白色(W)、蓝色(B)、红色(R)、绿色(G)、红外光(IR)、紫外光(UV),这六种颜色。那么这六种光源颜色又有什么区别及用途呢?下面就让沃德普机器视觉光源来给大家介绍一下:
1.白色光源(W):
白色光源通常用色温来界定,色温高的颜色偏蓝色(冷色,色温>5000K),色温低的颜色偏红(暖色,色温<3300与5000K)之间称之为中间色,白色光源适用性广,亮度高,特别是拍摄彩色图像时使用更多。
2.蓝色光源(B):
蓝色光源波光为430-480之间,适用产品:银色背景产品(如钣金,车加工件等)、薄膜上金属印刷品。
3.红色光源(R):
红色光源的波长通常在600-720之间,其波长比较长,可以透过一些比较暗的物体,例如底材黑色的透明软板孔位定位、绿色线路板线路检测,透光膜厚度检测等,采用红色光源更能提高对比度。
4.绿色光源(G):
绿色光源波长510-530,介于红色与蓝色之间,主要针对产品:红色背景产品,银色背景产品(如钣金,车加工件等)。
5.红外光(IR)
红外光的波长一般为780-1400,我司大多采用940波长的红外光,红外光属于不可见光,其透过力强。一般用于LCD屏检测等。
6.紫外光(UV):
紫外光的波长一般为190-400,主要采用385波长的紫外光,其波长短,穿透力强,主要用于触摸屏ITO检测、布料表面破损、点胶溢胶检测等方面,金属表面划痕检测等。
其实机器视觉光源因为其形状颜色各异,所以每个光源检测的东西都不一样。

互补色可增加对比度
当两种颜色光以适当地比例混合而能产生白色感觉时,则这两种颜色就称为“互为补色”。互补色在色环(下图)上相互对应。两种互补色等强度混合可以得到白色,如果希望更加鲜明地突出某些颜色,则选择色环上想对应的互补颜色,这样可以明显地提高图像的对比度。
二.光源颜色选择策略
在机器视觉系统中,光源具有非常重要的作用,选择合适的光源成为决定整个系统成败的关键因素,光源的主要目的就是将被测物体与背景尽量明显分别,获得高品质、高对比度的图像。下面带您了解一下机器视觉光源颜色的选择攻略:
一般情况下,如果使用黑白相机,又对被测物体的颜色选择没有特殊的要求,红色是比较合适的选择。因为红色LED寿命长、稳定、价格低廉,更重要的是红色LED的波长更接近传感器的灵敏度峰值,而通常的CCD对紫色、蓝色的光敏感程度没有红光强。
如果进行彩色成像,则通常考虑使用白色光源。白色LED光源的制造有几种方法,一种是使用白色LED制造,发光管内部有蓝色发光芯片与受到激发后发出黄色的荧光粉,发出的光按一定比例叠加到一起,看起来形成了白色,这是最为常见的形式。另一种方法是使用红绿蓝三种不同颜色的LED,按某种顺序或方式在光源上进行排列,并分别控制每种颜色的度,使用相对方便。此种方法通常使用四个单色RGGB颗粒进行排列,所以其中的绿色分量通常会比较足,之所以多加一个绿色的G通量,是因为人眼对绿色光源(波长555nm)最敏感。
机器视觉应用中应注意目标颜色与光源颜色的搭配,我们看到某个物体成某种颜色,是因为其反射了对应的光谱。我们拍摄物体时,如果要将某种颜色打成白色,那么就得使用与此颜色相同或相似的光源(光的波长一样或接近),而如果要打成黑色,则需要选择与目标颜色波长差较大的光源。
彩色图像中,除了黑色、灰色不明显,其它如白色、紫色、蓝色、绿色、黄色、橙色、红色、棕色都很明显,色彩饱满艳丽。多色排线在白色光源下的黑白相机大尺度成像,可以发现其中的白色、黄色、绿色、橙色较明亮,说明相机对这些波长比较敏感。在红光下成像时,白、红、橙、黄几种颜色比较明显,其它的颜色都很暗,说明红光照射物体时,物体本身有红色分量时,才能反射红光,在黑白相机下表现为红色特征。而在绿色光源下,则白色、绿色、黄色表现明亮,其它较暗淡。蓝色光源下,白色、紫色、蓝色等表现较亮,有效反射蓝光。从中也可以发现,白色,无论在什么光照下,都成明显的白色,是因为其本身不吸收光谱,任何光谱照射到其表面上都会被反射;相反,黑色材料则无论什么光照射上去都不反光成黑色。

生活中看到某个物体呈现某种颜色,是因为物体表面反射了该对应的光谱。
视觉应用中,为目标颜色合理地选择光源的颜色有利于降低算法难度、提高系统稳定性。
同类色
同类色指色相性质相同,但色度有深浅之分。
是色相环中15°夹角内的颜色。
如深红与浅红,深蓝与浅蓝。
邻近色
邻近色,就是在色带上相邻近的颜色。
例如红色和橙色。
是色相环中,凡在60度范围之内的颜色都属邻近色的范围
互补色/对比色
有非常强烈的对比度,在颜色饱和度很高的情况下,可以创建很多十分震撼的视觉效果。
例如橙和蓝、红和绿、黄和紫。
在色相环中每一个颜色对面(180度对角)的颜色。
类似色
类似色是指在色轮上相邻的三个颜色。
在色轮上90度角内的色统称为类似色。
例如红-红橙-橙、黄-黄绿-绿、青-青紫-紫等均为类似色。
光源颜色的选择
基于以上颜色理论,如果要将目标打成白色需要选用同类色,如果要目标打成黑色需要选用互补色。
合理选择光源颜色可以使特征和背景之间产生较大的灰度差别。一把情况下,如果使用黑白相机,对被测物体的颜色没有特殊要求的情况下,红色是比较好的选择。
红色LED寿命长、稳定、价格低。通常ccd对红光比较敏感。
波长越长,穿透能力越强。红外的穿透能力强,适合检测透光性差的物体,如棕色口服液杂质检测。
波长越短,扩散能力越强。紫外对表面的细微特征敏感,适合检测对比不够明显的地方,如食用油瓶上的文字检测。 表面瑕疵检测一般使用蓝光。
不同波长的光线聚焦点不一样,可以参照彩虹形成的原理。在图像中心区域,不用颜色形成的光斑是同心圆。向图像边缘移动时会产生彩虹效应,目标特征将在更大区域上成像,会导致对比度降低。对像素较小的相机影响更严重。

如何选择视觉CV光源颜色的更多相关文章
- MFC之向导页、消息框、文件选择、字体、颜色(三)
属性页对话框的分类 属性页对话框想必大家并不陌生,XP系统中桌面右键点属性,弹出的就是属性页对话框,它通过标签切换各个页面.另外,我们在创建MFC工程时使用的向导对话框也属于属性页对话框,它通过点击“ ...
- CSS3全览_文本+视觉+盒子+背景颜色
CSS全览_文本+视觉+盒子+背景颜色 目录 CSS全览_文本+视觉+盒子+背景颜色 1. 文本属性 2. 视觉格式化基础 3. 内边距, 边框, 轮廓和外边距 4. 颜色, 背景和渐变 作者: ht ...
- winform 保存文件 打开文件 选择文件 字体样式颜色(流 using System.IO;)
string filePath = ""; private void 保存SToolStripMenuItem_Click(object sender, EventArgs e) ...
- 工业搬运机器人(AGV)为什么要选择视觉导航
在智能制造和仓储物流领域,搬运机器人的需求量在逐年上升.机器人(AGV)的种类千差万别,如何选择成为需求方头痛的问题. 本文将从客户关心的多个方面,对市面上的常见的工业级导航方案做一个比较. 搬运机器 ...
- 设置PyCharm中选择文本的背景颜色和代码中和选中单词相同单词的背景颜色
1 设置选中单词的背景颜色 首先进入File->Setting->Editor->Color Scheme后复制一个存在的颜色主题作为自定义的颜色主题(默认的颜色主题是无法修改的,也 ...
- selector 的用法,在选择和不选择情况下的颜色
在res/drawable文件夹新增一个文件,此文件设置了图片的触发状态,你可以设置 state_pressed,state_checked,state_pressed,state_selected, ...
- WPF整理-使用用户选择主题的颜色和字体
“Sometimes it's useful to use one of the selected colors or fonts the user has chosen in theWindows ...
- 跟我一起学QT_QT标准对话框_颜色选择框
标准对话框 QT的标准对话框分为以下几种 颜色对话框 文件对话框 字体对话框 输入对话框 消息对话框 进度对话框 错误信息对话框 向导对话框 颜色对话框 首先学习的是颜色对话框颜色对话框类QColor ...
- Unity 渲染教程(五):多个光源
https://www.jianshu.com/p/c1a9a5d27765 对每个物体渲染多个光源的光照效果. 支持不同的光源类型. 使用光源cookie. 计算顶点光照. 在光照计算中添加球面谐波 ...
随机推荐
- php 二维数组排序详解: array_multisort
定义和用法 array_multisort() 函数返回一个排序数组.您可以输入一个或多个数组.函数先对第一个数组进行排序,接着是其他数组,如果两个或多个值相同,它将对下一个数组进行排序. 注释: ...
- Android平台dalvik模式下java Hook框架ddi的分析(2)--dex文件的注入和调用
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/77942585 前面的博客<Android平台dalvik模式下java Ho ...
- <JVM中篇:字节码与类的加载篇>03-类的加载过程(类的生命周期)详解
笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...
- java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
问题描述 Tomcat启动报错 java.lang.ClassNotFoundException: org.apache.jsp.index_jsp 问题原因 因为tomcat在启动过程中jsp和se ...
- PHP基础-PHP中预定义的超全局数组
预定义数组: 自动全局变量---超全局数组 1. 包含了来自WEB服务器,客户端,运行环境和用户输入的数据 2. 这些数组比较特别 3. 全局范围内自动生效,都可以直接使用这些数组 4. 用户不能自定 ...
- 二、jmeter模拟请求头及监听器之结果树
一.模拟请求头 利用jmeter发送http请求时,被接收的服务端会对发送的该请求进行初步判断,如果不是web端发送的请求就会被打回导致请求不通,这时候需要模拟请求头,模拟正常的用户行为进行发送请求 ...
- Postman中如何实现接口之间的关联?
Postman中如何实现接口之间的关联? 不单单说Postman中,我为什么拿Postman举例,因为它比较简单一点. 那如果我只问你如何实现接口之间的关联,那肯定有很多的方式,Postman只是其中 ...
- v-for详解
v-for的引入 当我们需要对一组数据进行渲染时,我们就可以使用v-for来完成 v-for遍历数组 格式:v-for="(item, index) in items".(也许是因 ...
- 理解微信小程序的双线程模型
有过微信小程序开发经验的朋友应该都知道"双线程模型"这个概念,本文简单梳理一下双线程模型的一些科普知识,学识浅薄,若有错误欢迎指正. 我以前就职于「小程序·云开发」团队,在对外的一 ...
- mybatis-plus批量插入saveBatch太慢?我愿意称rewriteBatchedStatements为神
最近在做项目优化,代码优化之后,测试接口,好家伙.一个定时任务接口执行要10秒左右. 一点点追踪,给每个方法打上执行时间,一点点缩小范围.好家伙,终于让我锁定了目标. 这是mybatis-plus的批 ...