左:快速算法 右:高质量算法
可用的去马赛克算法有不少,它们各有各的优缺点。由于你使用的传感器,相机的设置,甚至拍摄的物体都会对成像造成影响,所以最佳的算法也不尽相同。比如说在拍摄夜空时,有些算法生成的星星就会更好一点。
在去马赛克这一步之后,我们得到了这样的一幅图像:
为了简单快速地展示效果,图为模拟得到的结果
这一点也不好看。我们一眼就能看出来,这张相片的颜色和曝光都不正常。
但这并不意味着你的相机出了什么问题。原因正相反:这是因为你的相机所拍摄得到的信息太多了,远远超过了你屏幕可以显示的范围。我们需要用到你传感器收到的数据,也就是记录了你拍照场景的光的数据;再将其转换为在你屏幕上显示的像素值。
第二步:从场景到屏幕我们先处理颜色的问题。下方这张图表代表着人肉眼能看到的所有颜色,而中间的三角形代表着大多数屏幕能够显示的颜色。
当你的相机拍到了三角形外部的颜色时,我们就得对这些颜色进行调整,使那些不可用的颜色融入三角区内部。
这一步因为一个小细节而变得无比棘手:判断什么样的「白」才是真的「白」。如果你买过灯泡就会知道,现实世界的每一种白色光都有一点或蓝色或黄色的偏色。这是因为我们的大脑会根据周围的环境来决定我们对于白色的认知,这一现象叫做「颜色一致性 (作者译,原文为 color constancy)」,下面这张黄色 / 蓝色裙子的视错觉图也是因为这一点才让人们产生了误解。
现在的相机在大多数情况下都能很好地确定「白点 (white point)」。选好「白点」之后,运行一下算法,就能得出一张白平衡准确的图片。