白平衡是图像处理的一个极重要概念。所谓白平衡(White Balance),就是对白色物体的还原。当我们用肉眼观看这大千世界时,在不同的光线下,对相同的颜色的感觉基本是相同的,比如在早晨旭日初升时,我们看一个白色的物体,感到它是白的;而我们在夜晚昏暗的灯光下,看到的白色物体,感到它仍然是白的。这是由于人类从出生以后的成长过程中,人的大脑已经对不同光线下的物体的彩色还原有了适应性。但是,作为拍摄设备,如数码相机,可没有人眼的适应性,在不同的光线下,由于CCD输出的不平衡性,造成数码相机彩色还原失真。一般情况下,我们习惯性地认为太阳光是白色的,已知直射日光的色温是5200K左右,白炽灯的色温是3000K左右。用传统相机的日光片拍摄时,白炽灯光由于色温太低,所以偏黄偏红。所以通常现场光线的色温低于相机设定的色温时,往往偏黄偏红,现场光线的色温高于相机设定时,就会偏蓝。
为了解决不同色温下,引起的白色漂移现象。由于白色对色温变化的响应最大,通常用白色来作为调整的基色。接下来主要介绍几种较为经典的白平衡算法。
1.灰色世界法(grey world method)
灰度世界算法假设给定的一幅色彩变化很大的图像的R、G、B元素的平均值合成是一种普通的灰色。这样我们就可以在一幅数码相机在特殊光源下拍摄的图片中应用灰度世界假设来去掉因光源而带来的模糊层面。一旦选择了一种普通灰度值,每一种色彩元素就可以应用Von Kries转化用以下的系数进行调整。这里,使用50%作为反射率,就是取灰度值为0.5或128。
那么,灰色世界法的算法过程如下:
1.灰色的选择,比如选50%作为反射率。
2.计算RGB三通道的均值。
3.计算各通道的增益。
R g a i n = g r a y R a v g R_{gain} = \frac{gray}{R_{avg}} Rgain=Ravggray
G g a i n = g r a y G a v g G_{gain} = \frac{gray}{G_{avg}} Ggain=Gavggray
B g a i n = g r a y B a v g B_{gain} = \frac{gray}{B_{avg}} Bgain=Bavggray
4.光源变换,即
R n e w = m i n ( R ∗ R g a i n , 1 ) R_{new} = min(R*R_{gain},1) Rnew=min(R∗Rgain,1)
G n e w = m i n ( G ∗ G g a i n , 1 ) G_{new} = min(G*G_{gain},1) Gnew=min(G∗