作者:The Imaging Source Europe GmbH
[W{WfJ-HwG K\a=bA}DG 很多数字
相机采用电荷
耦合器件(
CCD)作为其感光元器件。CCD 的原理很简单:我们可以把它想象成一个没有盖子的
芯片,上面整齐地排列着很多小的感光单元,光线中的光子撞击每个单元后,在这些单元中会产生电子(光电效应),而且光子的数目与电子的数目互成比例。但在这一过程中,光子的波长并没有被转换为任何形式的电信号,换言之,CCD 裸芯片实际上都没有把色彩信息转换为任何形式的电信号。那么采用 CCD 作为感光元件的彩色数字相机是如何生产彩色图像的?其图像存在哪些优缺点?本文将回答这个问题。
Eggdj+ pz]#/Ry? {#X]D~;s+ 22gk1'~dO ZAcH`r* 1. 单色相机
[$[1|r
*Q xU_Dg56z'& 我们首先从相对简单的黑白数字相机入手。
$X%'je ui$JQ _P KaGG4?=V Yl!~w:O!o 如图所示,物体在有光线照射到它时将会产生反射,这些反射光线进入
镜头光圈照射在CCD芯片上,在各个单元中生成电子。
a2tRmil EA+}Rf6} 曝光结束后,这些电子被从 CCD 芯片中读出,并由相机内部的微处理器进行初步处理。此时由该微处理器输出的就是一幅数字图像了。
)r^)e4UI pk,]yi,ZF 2. 3 CCD 彩色相机
Hp!c\z; mcB8xE CCD 芯片按比例将一定数量的光子转换为一定数量的电子,但光子的波长,也就是光线的颜色,却没有在这一过程中被转换为任何形式的电信号,因此 CCD 实际上是无法区分颜色的。
]-b`uYb H6I]GcZ$ 在这种情况下,如果我们希望使用 CCD 作为相机感光芯片,并输出红、绿、蓝三色分量,就可以采用一个分光
棱镜和三个 CCD,如图所示。棱镜将光线中的红、绿、蓝三个基本色分开,使其分别投射在一个 CCD 上。这样以来,每个 CCD 就只对一种基本色分量感光。
7-u['nFJ 7@*l2edXm+ 这种解决方案在实际应用中的效果非常好,但它的最大缺点就在于,采用3个 CCD + 棱镜的搭配必然导致价格昂贵。因此科研人员在很多年前就开始研发只使用一个 CCD 芯片也能输出各种彩色分量的相机。
|0e7<[ 8Q2qroT 3. 单 CCD 彩色相机
.3JLa8y 'ixu+.ZL/ (1) 成像原理
jR[3{ Reo 8vL2<VT; 如果在 CCD 表面覆盖一个只含红绿蓝三色的马赛克滤镜,再加上对其输出信号的处理算法,就可以实现一个 CCD 输出彩色图像数字信号。由于这个设计理念最初由拜尔(Bayer)先生提出,所以这种滤镜也被称作拜尔滤镜。
.3QX*]{ (+^z9p7/! 如上图所示,该滤镜的色彩搭配形式为:一行使用蓝绿元素,下一行使用红绿元素,如此交替;换言之,CCD 中每4个像素中有2个对绿色分量感光,另外两个像素中,一个对蓝色感光、一个对绿色感光。从而使得每个像素只含有红、绿、蓝三色中一种的信息,但我们希望的是每个像素都含有这三种颜色的信息。
;@R=CQ6 eumpNF%$ 所以接下来要对这些像素的值使用“色彩空间插值法”进行处理。
?=\&O=_ln 6~@S,i1 以上图中左下角的红色区域为例,我们需要的是丢失了的绿色与蓝色的值。而插值法可以通过分析与这个红色像素相邻的像素计算出这两个值。在这个例子中,算法发现该区域像素绿色像素均含有大量电荷,但蓝色像素电荷数为零,所以可以计算出,这个红色像素实际上是黄色的。
vL,:Yn@b ^OWA 如果以上图为例对3 CCD 的成像结果与单 CCD + 色彩插值处理后的结果进行比较,我们将发现所得图片完全一致。但该结论仅对这幅图像成立!因为这副图片色彩对比简单、边界规则。而在实际应用中,即使最成熟的色彩插值算法也会在图片中产生低通效应。所以,单 CCD 彩色相机生成的图片比3 CCD 彩色相机生成的图片更加模糊,这点在图像中有超薄或纤维形物体的情况下尤为明显。但是,单 CCD 彩色相机使得CCD 数字相机的价格大大降低,而且随着电子技术的发展,今天 CCD 的质量都有了惊人的进步,因此大部分彩色
数码相机都采用了这种技术。
WK<:(vu. 3r]:k)J (2) 成像类应用
`$5 QTte "7&DuF$s) 在成像原理一节的讲解过程中,我们使用的是把一幅图片中的红、绿、蓝三色分离而得的三副图片。现在,我们将使用这张图片的原始数字图像介绍两种简单的插值处理算法。
BlrZ<\-/ h/a|-V}m& (i) 临近像素复制法
--}5%6 填补缺失的色彩值的最简单方法就是从临近像素中获取色彩值。以拜尔滤镜中第二行第一个绿色像素为例,在源图像中该点实际是红色的,但经拜尔滤镜中绿色镜片过滤后,该点色值为零。我们只需要把临近红蓝像素中的红色与蓝色值复制到该像素中,就能获得其RGB值(255,0,0)。
s.p4+KJ n8dJ6"L<" 就此例而言,这种插值法计算出了正确的RGB值。但在实际应用当中,对于静止图像,这种简单的插值法所生成的结果是不可接受的。但由于它算法简单且不耗费多少时间,我们可以将其用于对图像质量要求不高的
视频数据流中(例如视频预览)。
Z&VH7gi x #Um` (ii) 临近像素均值法(双线性插值)
&=-ZNWNo p]-\\o} 我们可以对“复制插值法”作出的最直接改进就是使用若干临近像素的均值。如下图所示,这种方法对于上例中的象素点,同样可以计算出正确的RGB值(255,0,0)。
,sqxxq [$<\*d/ 但针对图中第二个示例像素点的计算指出了均值法的一个重大缺陷:均值法有低通特性,并由此将清晰的边界钝化。如该点 RGB 值本应是(255,0,0),但计算后变成了(255,128,64),即由红色变成了棕橙色。
~5Cid)Q}@o % >\v6ea 当然,今天大部分数字相机的色彩插值算法都要大大优于上面介绍的两种基本算法,但是使用相机的现场工程师几乎不大可能调整或改变一款相机内置的色彩插值算法。为了提供给用户更大的灵活性,映美精 DBK 21F04, DBK 21AF04, DBK 21BF04, DBK 31AF03, DBK 31BF03, DBK 41AF02 及 DBK 41BF02 型号的1394 系列相机 与 DBK 21AU04, DBK 21BU04, DBK 31AU03, DBK 31BU03, DBK 41AU02 及 DBK 41BU02 型号的USB2.0 系列相机都取消了色彩插值计算,它们尤其适用于需要自行处理原始数据图像的用户。
c :{#H9 UbnX%2TW 3) 测量类应用
Mt93YD-2+ G'M;]R9EP 在以测量为目的的应用场合,色彩插值法存在以下重要缺点 :
TJY
[s- ,R~{$QUl • 每个像素都具有红、绿和蓝的色彩值,但这三个值中只有一个真正来自CCD。其它两个值都由插值法计算而得,因此都是估算值。
8NJxtT~0c~ • 这些估算值不仅干扰测量过程本身,而且它们都会给总线及计算机 CPU 增加不必要的负载。
%]m/fo4b XJ3p< 举例说明
abW[hp m/T3Um 如上图所示,源图像由色彩非常接近的两个区域组成。左半边像素的RGB值为(0,255,128),右半边的像素值为(0,255,144)。如采用临近像素均值法进行插值处理,会得到红、绿、蓝三色的三幅图像(结果如下图)。
Q,f~7IVX N-9Vx#i 如图所示,红色图只有64个灰度级为0的值,而绿色图中只有64个灰度级为255的值。因此,这两幅图对于区分不同区域起不到任何作用。只有蓝色柱状图显示出了一个介于32个128值与24个144值之间的“谷”。谷底的8个灰度级为136的值是色彩插值低通效应的结果,它证明了这一算法使得原本清晰的边界变得模糊。
3;hztCZj nN]GO} 如果我们基于原始图像进行分析,如下图所示:
4.7 PL t6+c"=P# 由上面三个柱状图可见,直接对数字原始图像进行柱状图分析有如下两点优势:
KS3>c7 • 可以省去占总量三分之二的冗余信息。
9[5qN!P;y • 由于没有使用插值处理,诸如边界模糊之类的干扰得以避免。
fK %${ 三幅柱状图再次表明红色和绿色图对于我们的分析没有意义,而蓝色柱状图则准确的反映了源图像的关系。
K|{IX^3)V iiw\ 综上所述,在图像测量应用领域,我们不推荐对原始图像进行色彩插值处理,相反,把从CCD获得的电荷直接转换为数字原始图像、并对其进行分析有助于简化问题、提高效率。