2.3.2 去马赛克
如本章2.2节所说,原始图像是场景光线经过CFA之后捕捉到的信号,因此每个像素仅存储了RGB三通道中某一通道的强度值。所以,为了使得每一像素都包含完整的三个通道的强度值以得到去除马赛克效应的图片,需要进行去马赛克(demosaicing),有时也称颜色插值(color interpolation)或CFA插值。去马赛克算法多种多样,但它们的核心思想都可以被概括为:对于每一像素缺失的两个通道的强度,使用附近像素捕捉到的强度值进行预测。
最简单的一类去马赛克方法为简易插值法。它们不考虑图像的三个通道之间的相关性与信息互通,而将一般的图像插值法(如双线性插值、双三次插值)独立作用于每一个通道。图2-16展示了最为简单的简易双线性插值去马赛克方法的运作原理。对于整张图像的每一个像素,以及该像素RGB通道中的每个缺失的通道,算法使用八邻域内对应该通道的像素值进行平均,得到该像素该通道的值。例如,每一个像素缺失的G通道的值都能通过上下左右四个G像素插值得到;而每一个像素缺失的R或B通道的值,视该像素所处位置不同,可以通过对角的四个像素或者同行或同列的两个像素插值得到。
虽然上述简易插值法在较为平滑的图像区域往往能起到较好的效果,但在纹理特征较为高频的区域或屏摄图像中却可能会出现混叠现象,产生高频的彩色摩尔纹或伪影,其结果如图2-17所示。虽然这种现象随着现代相机空间分辨率的逐步提升而变得越来越不明显,但仍会在某些情况下降低图像的品质。因此,需要更加复杂、性能更好的去马赛克算法。通常,更为精细的去马赛克的方法会有选择地对局部信息进行插值(如边缘导向插值法,edge-directed interpolation),或将通道间的相关性纳入考虑(如基于一致色相的插值法,constant-hue-based interpolation)等。感兴趣的读者可以查阅相关论文[6]。
图2-16 简易双线性插值去马赛克方法(基于CMU 15-463[1]课程讲义插图重新绘制)
图2-17 简易插值去马赛克方法表现不佳的例子(左图来源于论文[5],右图使用Sony α7R III拍摄)