彩色CCD摄像头
在机器视觉系统中,图像的彩色信息还是很有用的,例如食品、医学、PCB检测、包装自动化等领域。
CCD硅芯片虽然对光谱中很宽的部分敏感,但它不能区分不同光谱的颜色。
为了将光谱中的三基色光分开来,只能在CCD芯片前加彩色滤波器。例如使用一三棱镜组,将图像分为RGB三个基色图像,分别投影到三片CCD芯片上,获得RGB三幅图像的视频信号。这种结构的摄像头被称作三晶片彩色摄像头,图6-6。
它能获取较高质量的图像,但结构复杂,价格昂贵,图6-6显示了三棱镜将入射光分解为RGB三色的示意图。
将入射的光图像分色滤波的另一种方法是在一片CCD晶片上进行,利用牺牲分辨率的方法,在相邻的像元传感器上覆盖三基色滤波器,称作彩色滤波阵列(Color Filter Arrays,CFAS)。这样就能使彩色CCD的结构大大简化,从而降低了它的价格。
在不同的应用领域,三基色的CFAS排列方法有很多,但用得最广泛的是Bayer模式。
Bayer滤波器是一个将RGB三种彩色安排在单片CCD像元阵列上的彩色滤波
器排列方式,见图6-7,Bayer滤波器又常被称作彩色滤波马赛克。每一个像元都用一微小的红、绿、蓝滤色片覆盖,其中绿色像元的数量是红和蓝像元的数量的二倍。这是因为人眼对绿色图像细节的分辨能力比红和蓝的高。从图6-7(b)可以看出,每四个像元组成的方块内,都含有两个绿色像元,而红和蓝色像元各一个。
具有Bayer滤波器CCD的原始输出被称为Bayer模式图像。因为每一个像元仅仅记录了三基色中的一个颜色,三分之二的彩色数据丢失了。使用反马赛克算法来对每一像元进行插值,恢复每一像元的RGB成分。目前这种算法很多,各公司的产品都不完全相同。
将Bayer模式图像插值成为RGB图像会带来各种误差,例如彩色的失真,特别是在图像变化尖锐的边缘,不但会引起较大的彩色失真,而且会使边缘变粗糙,甚至出现假的边缘线。所以精心开发反马赛克算法是至关重要的。