石鑫华视觉 发表于 2021-12-2 11:12:29

彩色相机能当黑白相机使用吗?

经常会遇到这样的问题,就是彩色相机能当黑白相机用吗?
对于这个问题,如果了解彩色相机和黑白相机的原理,那就比较容易理解了,答案是肯定的。但是这里面有些使用方法与注意事项。

一、将彩色相机的Bayer Patter,设置为None;或是Pixel Format设置为Mono
普通的彩色相机(如工业相机、摄像头、监控等),其实都是一个图像芯片来成像的,但是其里面的芯片,按排列成了固定的顺序,用于响应RGB三个颜色分量。如第一行是RGRGRG……这样的格式,第一个像素响应红色,第二像素影响绿色;而第二行则是GBGBGB……这样的格式,第一个像素响应绿色,第二个格式响应蓝色等。这是一种相对通用的排列方式,显示器等,也可能使用这样的方式来显示不同的颜色,只是可能会有不同的显示颜色,如黄色或者是有其它的,当然显示器可能不是矩阵的,还可能为了增加显示效果,有一些不规则的形状。

彩色相机的拜耳模式设置
通用使用彩色相机时,拜耳模式设置为使用硬件值即可。但是,也可以改变为其它的值,以得到不同的效果:

none时为黑白图像

GB/GR时颜色不对

BG时颜色也不对
但是BG时颜色基本上还算正常,只是红色和蓝色反了(字母s实际上是红色的的,字母h则是蓝色的)

RG时则是正常的,也就是硬件默认值是RG模式
在这里可以看到,使用none时图像是黑白灰度图像。但是这里的灰度图,均匀性是不好的,有很多班块,放大看的话,就可以看到,响应红色的R像素要黑一些,而绿色和蓝色的要亮一些:

放大看none模式图像
也就是说,这种方式其实,不是很理想。
当然,在使用工业相机时,采集时还有一个Pixel format的属性,彩色相机一般是BayerRG8/BayerRG10之类的。

Pixel format的属性
这个像素属性,一般只能用来改像素的位深。当然,这里的彩色相机如果可以选择Mono8、Mono10之类的,那就可以直接输出为黑白图像,但是很遗憾,一般的相机都没有这种输出格式。
二、先采集得到彩色图像,再提取颜色平面从而得到灰度图像
可以使用彩色相机先采集图像得到彩色图像,然后再在软件中使用颜色平面提取函数,提取需要的颜色平面,这种方法可以得到一些更理想的灰度平面,例如是饱和度平面之类的,在一些特殊的项目上,可能会有更好的效果。但是这种方法,也是有限制的,如果是常规的拍照环境,要得到正常的彩色图像,光源选择上,只能考虑使用白色的光源。如果是红色或绿色或蓝色,则图像就会严格的往偏向这些光源的颜色。另一点,则是在软件上会增加一个提取灰度平面的函数,是会增加软件耗时的,如果项目要求速度比较高,那这种方法还是不建议,则直接使用黑白相机即可。

一般要将彩色相机当黑白相机使用,通常也是项目多了彩色相机或是哪里淘来的二手产品,或者是一些学习用的产品,兼容颜色或灰度图像处理函数的学习的。正常开发视觉项目,该用黑白相机就用黑白相机,该用彩色相机就用彩色相机,不要这样彩色当黑白用。


中国红 发表于 2022-1-13 12:18:13

这个挺厉害
页: [1]
查看完整版本: 彩色相机能当黑白相机使用吗?

LabVIEW HALCON图像处理入门教程(第二版)
石鑫华机器视觉与LabVIEW Vision图像处理PDF+视频教程11种全套
《LabVIEW Vision函数实例详解》教程-NI Vision所有函数使用方法介绍,基于NI VISION2020,兼容VDM21/22/23