原理
黑白(单色)相机
CCD原理并不复杂。我们可以把它想象成一个顶部被打开的记忆芯片。因此光束可以射到记忆单元中。根据"光电效应”,这些光束在记忆单元中产生负电荷(下图中右上部分)。
曝光后,这些电荷被读出,进而被相机处理单元进行预处理。从相机处理单元输出的就是一幅数字图像。
如果相机要求以模拟格式输出视频,我们就必须对该数字原始图像进行相应转换。然而这个问题与本文所讨论的“彩色相机如何工作”并无关联。我们只需考虑数字格式的原始图像。
3CCD彩色相机
你可以说CCD芯片将光子转换为电子,在这一过程当中,光子数目与电子数目互成比例。但光子还有另外一个特征值——波长,而这条信息却没有在这个过程中被转换为电子。因此,从这个意义上说,CCD芯片都可以被称为色盲。
如果我们需要相机内的图像处理单元在每个像素上都输出红、绿和蓝三种颜色分量的值,就必须给这三种基色中的每种颜色都配置一个CCD。每个CCD都只得到过滤后一个颜色分量的光子,即一个CCD用于红光,一个用于绿光,一个用于蓝光。我们用三棱镜将这三种颜色分离开来。
这个简单的解决方法在实际应用中可以得到非常理想的效果。但它有一个重要的缺点——价格昂贵。因此人们早已开始研发基于一个CCD的设计理念彩色相机。下节将介绍最常用的一种。
单CCD彩色相机
如果考虑到价格因素,我们只能使用一个CCD芯片,那么我们就得把彩色滤光片象马赛克一样分布在CCD所有的像素上。这一概念也被称为马赛克滤光片或拜尔滤光片(最初由拜尔先生发明)。
这样一来,每个像素只能产生红、绿或蓝三色当中一种颜色的值。但是在输出时,所有像素都应该有这三种颜色的信息。我们应该如何找回其余两种被滤除的颜色分量值呢?
答案是由相机处理单元执行的空间色彩插值法。以下图中左下角的红色像素为例,我们需要的是被滤除的绿色与蓝色的值。而插值法通过分析与这个红色像素相邻的像 素可以估算出这两个值。在本例中,我们发现绿色像素含有大量电荷,但蓝色像素电荷数为零。因此这个红色像素实际上是黄色的。在稍后的色彩插值一节中您将可以了解到有关色彩插值的详细信息。
如果对3CCD相机生成的3幅数字原始图像与单CCD相机生成的3幅数字始图像进行比较,我们会发现它们看起来完全相同。但这仅仅对我们这个简化的例子是成立的。在实际应用中,即使最好的彩色空间插值法也会产生低通效应。因此,单CCD相机生成的图像要比3CCD相机或黑白相机的图像模糊,这点在图像中有超薄或纤维形物体的情况下尤为明显。
用于成像与测量的单CCD相机
成像
在原理一节中,我们已经了解了用于成像的单CCD彩色相机的工作原理。马赛克滤光片(亦被称作拜尔滤光片)使得每个像素只能显示红、绿或蓝当中的一种颜色。但由于我们希望相机能在每个像素都输出红、绿和蓝这三种颜色,相机的处理单元需要插入缺失色彩的值。在色彩插值一节您可以了解更多详细内容。
这一方法的显著优点在于它能节省成本。此外,今天的单CCD相机的质量也惊人的好。因此,绝大多数彩色相机都采用此项技术。
测量
在以测量为目的图像应用领域,色彩插值法有重大的缺点:
? 每个像素都具有红、绿和蓝的色彩值,但这三个值中只有一个真正来自CCD。其它两个值都由插值法计算而得,即估算值。
? 这些估算值不但干扰测量过程本身,而且它们对于总线及计算机而言都会增加不必要的负载。
在图像测量应用领域,我们认为将色彩插值关闭并把从CCD获得的电荷直接转换为数字原始图像更为有利。
需要提醒读者注意的是:现在大多数彩色图像处理软件都默认每个像素都有红色、绿色和蓝色值。处理数字原始图像对于我们当中的大多数而言都还比较陌生。因此,我们在色彩插值一节中更详细地介绍处理数字原始图像的基本原理。
色彩插值(用于成像)
概述
在原理一节中,我们通过一个例子介绍了色彩插值的原理。为了让该例简单明了,三幅生成的图像(数字原始图像的三色被分离后的图像)都是理想化的。
下面我们将详细介绍两种简单的插值处理。一开始我们将使用在用于成像与测量的单CCD相机(测量)一节中介绍过的数字原始图像。为了简单起见,该数字原始图像、它的源图及拜尔滤光片都被列于下图。
复制临近像素法
填补缺失的色彩值的最简单方法就是从临近像素中获取色彩值。让我们以第二行第一个绿色像素(来自拜尔滤光片)为例(如下图中被加粗黑框之像素所示)。
在源图像中该点实际是红色的(见概述),但经拜尔滤光片绿色像素过滤后色彩值变为零。我们只需要把临近红蓝像素中的红色与蓝色值(见上图)复制到该像素中,就能获得其RGB值(255,0,0)。
就上图所示例子而言,插值法产生了正确的RGB值。但在实际应用当中,对于静止图像,这种简单的插值法所生成的结果是不可接受的。但由于它并不耗费多少时间,我们可以将其用于对质量标准要求不高的视频数据流中(例如视频预览)。
临近像素均值法(双线性插值)
我们可以对“复制插值法”作出的第一个改进就是使用若干临近像素的均值。如图所示,这种方法同样可以得到正确的RGB值(255,0,0)。
但第二个例子指出了均值法的一个重大缺陷:均值法有低通特性,并由此将清晰的边界钝化。RGB值本应是(255,0,0),但实际上变成了(255,128,64),因此该点变成了棕橙色。
今天相机中所使用的插值法的性能要大大高于前面介绍的这两种基本方法。A Study of Spatial Color Interpolation Algorithms for Single-Detector Digital Cameras一文 对这些算法做了很好的介绍和比较。
一般情况下现场工程师不大可能选择或改变一个普通彩色相机的插值法。为了提供给用户更大的灵活性, The Imaging Source 提供一系列不带插值处理功能的彩色相机,如1394相机中的 DBK 21F04, DBK 21AF04, DBK 21BF04, DBK 31AF03, DBK 31BF03, DBK 41AF02和DBK 41BF02,以及USB2.0相机中的 DBK 21AU04, DBK 21BU04, DBK 31AU03, DBK 31BU03, DBK 41AU02 及 DBK 41BU02。它们尤其适用于需要自行处理原始图像数据的用户。
色彩还原(用于测量)
概述
在用于成像与测量的单CCD相机一节中,我们了解到经过插值处理的图像并不适用于以测量为目的的实际应用。其原因可以通过下图中的例子予以解释。
源图像由色彩及其相近的两个区域组成。左半边像素的RGB值为(0,255,128),右半边的像素值为(0,255,144)。
对经过插值处理的图像进行还原处理
上图显示了我们对源图像进行插值处理后的结果。为了简化运算,我们使用在色彩插值一节中介绍过的均值插值法(双线性插值法)。结果得到红、绿、蓝三色的三幅图像。
柱状图是一种区分图像区域的经典方法。如右图所示,红色分量图只有64个灰度级为0的值,而绿色分量图中只有64个灰度级为255的值。因此,这两幅图对于区分不同区域起不到任何作用。
只有蓝色分量柱状图显示出一个介于32个128值与24个144值之间的“谷值”。8个灰度级为136的值就是色彩插值低通效应的结果。这一效应使得原本清晰的边界变得模糊。
对数字原始图像进行还原处理
直接对数字原始图像进行柱状图分析有如下两点优势:
? 可以省去占总量三分之二的冗余信息。
? 由于没有使用插值处理,诸如边界模糊之类的干扰得以避免。
三幅柱状图再次表明红色和绿色图对于我们的分析没有意义。蓝色柱状图则再次准确的反映了源图像的关系。
也许会有人反对说,均值插值法(双线性插值法)今天已不再被应用,因为人们已经开始使用比它高效得多的算法。但效率应与成像质量优化问题联系在一起考虑,而且其中起评判标准的作用的是人类的视觉系统。所以如果从测量应用的角度出发,高效的插值法会在图像还原时导致不同类型的干扰。
黑白(单色)相机
CCD原理并不复杂。我们可以把它想象成一个顶部被打开的记忆芯片。因此光束可以射到记忆单元中。根据"光电效应”,这些光束在记忆单元中产生负电荷(下图中右上部分)。
曝光后,这些电荷被读出,进而被相机处理单元进行预处理。从相机处理单元输出的就是一幅数字图像。
如果相机要求以模拟格式输出视频,我们就必须对该数字原始图像进行相应转换。然而这个问题与本文所讨论的“彩色相机如何工作”并无关联。我们只需考虑数字格式的原始图像。
3CCD彩色相机
你可以说CCD芯片将光子转换为电子,在这一过程当中,光子数目与电子数目互成比例。但光子还有另外一个特征值——波长,而这条信息却没有在这个过程中被转换为电子。因此,从这个意义上说,CCD芯片都可以被称为色盲。
如果我们需要相机内的图像处理单元在每个像素上都输出红、绿和蓝三种颜色分量的值,就必须给这三种基色中的每种颜色都配置一个CCD。每个CCD都只得到过滤后一个颜色分量的光子,即一个CCD用于红光,一个用于绿光,一个用于蓝光。我们用三棱镜将这三种颜色分离开来。
这个简单的解决方法在实际应用中可以得到非常理想的效果。但它有一个重要的缺点——价格昂贵。因此人们早已开始研发基于一个CCD的设计理念彩色相机。下节将介绍最常用的一种。
单CCD彩色相机
如果考虑到价格因素,我们只能使用一个CCD芯片,那么我们就得把彩色滤光片象马赛克一样分布在CCD所有的像素上。这一概念也被称为马赛克滤光片或拜尔滤光片(最初由拜尔先生发明)。
这样一来,每个像素只能产生红、绿或蓝三色当中一种颜色的值。但是在输出时,所有像素都应该有这三种颜色的信息。我们应该如何找回其余两种被滤除的颜色分量值呢?
答案是由相机处理单元执行的空间色彩插值法。以下图中左下角的红色像素为例,我们需要的是被滤除的绿色与蓝色的值。而插值法通过分析与这个红色像素相邻的像 素可以估算出这两个值。在本例中,我们发现绿色像素含有大量电荷,但蓝色像素电荷数为零。因此这个红色像素实际上是黄色的。在稍后的色彩插值一节中您将可以了解到有关色彩插值的详细信息。
如果对3CCD相机生成的3幅数字原始图像与单CCD相机生成的3幅数字始图像进行比较,我们会发现它们看起来完全相同。但这仅仅对我们这个简化的例子是成立的。在实际应用中,即使最好的彩色空间插值法也会产生低通效应。因此,单CCD相机生成的图像要比3CCD相机或黑白相机的图像模糊,这点在图像中有超薄或纤维形物体的情况下尤为明显。
用于成像与测量的单CCD相机
成像
在原理一节中,我们已经了解了用于成像的单CCD彩色相机的工作原理。马赛克滤光片(亦被称作拜尔滤光片)使得每个像素只能显示红、绿或蓝当中的一种颜色。但由于我们希望相机能在每个像素都输出红、绿和蓝这三种颜色,相机的处理单元需要插入缺失色彩的值。在色彩插值一节您可以了解更多详细内容。
这一方法的显著优点在于它能节省成本。此外,今天的单CCD相机的质量也惊人的好。因此,绝大多数彩色相机都采用此项技术。
测量
在以测量为目的图像应用领域,色彩插值法有重大的缺点:
? 每个像素都具有红、绿和蓝的色彩值,但这三个值中只有一个真正来自CCD。其它两个值都由插值法计算而得,即估算值。
? 这些估算值不但干扰测量过程本身,而且它们对于总线及计算机而言都会增加不必要的负载。
在图像测量应用领域,我们认为将色彩插值关闭并把从CCD获得的电荷直接转换为数字原始图像更为有利。
需要提醒读者注意的是:现在大多数彩色图像处理软件都默认每个像素都有红色、绿色和蓝色值。处理数字原始图像对于我们当中的大多数而言都还比较陌生。因此,我们在色彩插值一节中更详细地介绍处理数字原始图像的基本原理。
色彩插值(用于成像)
概述
在原理一节中,我们通过一个例子介绍了色彩插值的原理。为了让该例简单明了,三幅生成的图像(数字原始图像的三色被分离后的图像)都是理想化的。
下面我们将详细介绍两种简单的插值处理。一开始我们将使用在用于成像与测量的单CCD相机(测量)一节中介绍过的数字原始图像。为了简单起见,该数字原始图像、它的源图及拜尔滤光片都被列于下图。
复制临近像素法
填补缺失的色彩值的最简单方法就是从临近像素中获取色彩值。让我们以第二行第一个绿色像素(来自拜尔滤光片)为例(如下图中被加粗黑框之像素所示)。
在源图像中该点实际是红色的(见概述),但经拜尔滤光片绿色像素过滤后色彩值变为零。我们只需要把临近红蓝像素中的红色与蓝色值(见上图)复制到该像素中,就能获得其RGB值(255,0,0)。
就上图所示例子而言,插值法产生了正确的RGB值。但在实际应用当中,对于静止图像,这种简单的插值法所生成的结果是不可接受的。但由于它并不耗费多少时间,我们可以将其用于对质量标准要求不高的视频数据流中(例如视频预览)。
临近像素均值法(双线性插值)
我们可以对“复制插值法”作出的第一个改进就是使用若干临近像素的均值。如图所示,这种方法同样可以得到正确的RGB值(255,0,0)。
但第二个例子指出了均值法的一个重大缺陷:均值法有低通特性,并由此将清晰的边界钝化。RGB值本应是(255,0,0),但实际上变成了(255,128,64),因此该点变成了棕橙色。
今天相机中所使用的插值法的性能要大大高于前面介绍的这两种基本方法。A Study of Spatial Color Interpolation Algorithms for Single-Detector Digital Cameras一文 对这些算法做了很好的介绍和比较。
一般情况下现场工程师不大可能选择或改变一个普通彩色相机的插值法。为了提供给用户更大的灵活性, The Imaging Source 提供一系列不带插值处理功能的彩色相机,如1394相机中的 DBK 21F04, DBK 21AF04, DBK 21BF04, DBK 31AF03, DBK 31BF03, DBK 41AF02和DBK 41BF02,以及USB2.0相机中的 DBK 21AU04, DBK 21BU04, DBK 31AU03, DBK 31BU03, DBK 41AU02 及 DBK 41BU02。它们尤其适用于需要自行处理原始图像数据的用户。
色彩还原(用于测量)
概述
在用于成像与测量的单CCD相机一节中,我们了解到经过插值处理的图像并不适用于以测量为目的的实际应用。其原因可以通过下图中的例子予以解释。
源图像由色彩及其相近的两个区域组成。左半边像素的RGB值为(0,255,128),右半边的像素值为(0,255,144)。
对经过插值处理的图像进行还原处理
上图显示了我们对源图像进行插值处理后的结果。为了简化运算,我们使用在色彩插值一节中介绍过的均值插值法(双线性插值法)。结果得到红、绿、蓝三色的三幅图像。
柱状图是一种区分图像区域的经典方法。如右图所示,红色分量图只有64个灰度级为0的值,而绿色分量图中只有64个灰度级为255的值。因此,这两幅图对于区分不同区域起不到任何作用。
只有蓝色分量柱状图显示出一个介于32个128值与24个144值之间的“谷值”。8个灰度级为136的值就是色彩插值低通效应的结果。这一效应使得原本清晰的边界变得模糊。
对数字原始图像进行还原处理
? 可以省去占总量三分之二的冗余信息。
? 由于没有使用插值处理,诸如边界模糊之类的干扰得以避免。
三幅柱状图再次表明红色和绿色图对于我们的分析没有意义。蓝色柱状图则再次准确的反映了源图像的关系。
也许会有人反对说,均值插值法(双线性插值法)今天已不再被应用,因为人们已经开始使用比它高效得多的算法。但效率应与成像质量优化问题联系在一起考虑,而且其中起评判标准的作用的是人类的视觉系统。所以如果从测量应用的角度出发,高效的插值法会在图像还原时导致不同类型的干扰。