一个好的去马赛克的算法是十分复杂的,主要面对的问题是既要解析细节还要仍能正确还原颜色。为了说明这个问题,我们可以想象一种情况,拍摄一个十分小的黑白相间的检验图样,黑白图样小到什么程度呢,小到大小刚刚能覆盖住每一个像素单元。那么问题就出现了,因为邻近的绿色像素单元不会给算法提供任何新的信息,所以算法就不知道感应白色的红色像素单元红到什么程度,同理也不知道邻近的蓝色像素单元蓝到什么程度(其实都应该红到或者蓝到最淡,因为是白色)。相反,Foveon的X3感光元件因为每一个像素单元都能够同时感应红、绿、蓝三色,所以能够正确的还原白色和黑色。如果物体只由红色和蓝色组成,由于绿色像素不能提供任何额外的信息,所以Bayer感应器捕获的图像分辨率将降低。对于波长范围非常窄的单色红/蓝,绿色感光元素将得不到任何信息,但这样的物体在实际生活中非常罕见。实际上,就算感光元件捕获的是十分明亮饱和的红色,仍然存在绿色和很少量的蓝色信息。我们上面举的例子中的问题在于,正确估算颜色需要一定量的空间信息。如果只有唯一一个像素单元捕获红色信息,那么我们将没有办法重新构建出这个特定像素单元的颜色。
对于一个彩色的主体,灰度图像感应器只能纪录如图这样的黑白图像,你根本得不到彩色图像。那么我们怎样才能用灰度图像感应器捕捉到彩色的图像呢?柯达的工程师提出了一种解决方案,这就是Bayer Pattern(柯达的Bayer博士在80年代发明了这种全新的彩色滤镜阵列构造后背,因此命名为Bayer Pattern,除此以外也有其他不同的Pattern)。
R – G – R – G – R – G
G – B – G – B – G – B
R – G – R – G – R – G
G – B – G – B – G – B
首先大家可以注意到,总共有50%的绿色,而红色和蓝色各占25%。这样做的原因是人眼对绿色更敏感,能分辨出更多的细节。你观察一下周围的环境就会发现这并不奇怪,另外绿色也占据了可见光谱中最重要和最宽的位置。
现在我们的灰度感光元件得到的是经过彩色滤镜过滤的灰度值。图像由彩色的马赛克构成。但我们想得到的是每个像素都记录了全部的色彩信息的图像,而不是这样的马赛克效果,那么就需要一个软件来进行Bayer Pattern Demosaicing (去马赛克?)或者叫做彩色插值。那些丢失掉的色彩信息经过对相邻像素的色彩信息分析之后被重新估算出来。
|