讲白平衡是如何修正之前, 有两个很重要的理论需要知道:
灰度世界理论:这个理论蛮有意思, 与其说是色彩学, 我觉得更像是统计学的范畴, 它认为任何一幅图像, 当有足够的色彩变化时, 其R, G, B分量均值会趋于平衡(即 RGB 三个数值相等, 也就是说应当是黑白灰类型的颜色)。这个理论在全局白平衡中得到广泛应用, 特点是能够利用更多的图像信息来做判断, 但在面对色彩较为单一的图像时就显得有些乏力了。
全反射理论:一幅图像中亮度最大的点就是白点, 即假设在 YCbCr 空间中Y值最大的点为白色, 以此来校正整幅图像。特点是只考虑色彩最亮的那部分, 跟上面的灰度世界理论正好相反, 在处理色彩偏单调的图像时效果好些, 但面对颜色丰富的图片时, 因为最亮的点不一定是白色的, 可能会出现偏色的情况。
这两个理论分别对应着两种色彩空间 RGB 和 YCbCr 调整白平衡的理论基础:判断一张图片白平衡是否准确, 如果不准确, 如何量化其偏离数值。
白平衡就是一个纠正画面整体偏色的过程, 那为什么人眼不需要呢?其实在你看到一个东西的时候, 眼睛就已经对它进行了色彩修正。相机肯定没有人眼那么智能(至少现在没有), 概括的说, 它的自动白平衡算法就是设定一个范围, 如果拍摄照片的色彩平均值落在这个范围里面, 那就 OK, 说明无需修正。如果偏离出这个范围, 就需要调整参数, 并校正色彩数据直到其均值落入指定的范围内。这就是WB白平衡修正的过程。
下面就来简单介绍几个白平衡算法大致原理, 但具体的增益计算和数学建模过程就不作赘述了, 这东西正常人看了都会头大的。
1. 灰度世界算法(Gray World Assumption)
这个算法原理很简单, 就是根据前面所说的灰度世界理论, 将原始图像的RGB均值分别调整到R=G=B即可。不完美的地方就是这个算法对颜色不丰富的图像敏感程度一般, 处理起来效果也就不会很理想, 局限性较大。
2. 标准差加权灰度世界算法(Standard DeviationWeighted Gray World Assumption)
标准差加权灰度世界算法是针对上一个算法的改进, 它的原理是把图像等分成几块, 然后对每个块利用统计学进行分析, 看里面颜色的丰富程度, 颜色多的就加权, 颜色少得就减少权重, 最后求和得出一个均值。根据这个相对精确的数值来进行RGB数值的修正。
3. 全反射算法(Perfect Reflector Assumpution)
这个是基于前面介绍的全反射理论生成的算法, 理解起来也不难, 它认为中最亮的那个点就一定是白色的, 如果原始图像中最亮的那个点不是, 那就针对偏离白色的数值进行逆向修正。缺点就是如果图像色彩复杂或者就是没有高光点, 它的修正效果就会比较乏力。