一、SOG算法概述
1.Shades-of-Gray (SoG) 算法是白平衡领域中一个非常优雅的框架。它的核心贡献在于,将灰度世界(Gray-World)和完美反射(White-Patch)这两个看似对立的算法,统一到了同一个数学框架下。
二、对SOG算法取对数
在实践中,很多白平衡算法都会先对图像取对数,然后在 log 域进行光源估计。例如:

三、失效场景
以下场景中,SoG 算法(无论 𝑝 p 取何值)通常都会失效或表现不佳:
1.大面积单色主导的场景 例子:大面积蓝天、茂密的绿色森林、红色的花海。
失效原因:破坏了"场景平均反射率为灰色"的核心假设。算法会将单色背景误认为光源颜色,校正后画面会严重褪色或出现补色偏差。
2.多光源/混合光源场景 例子:室内暖黄灯光与窗外冷蓝日光同时存在的场景。
失效原因:全局统计算法只能给出一个全局光源估计,无法处理空间上不均匀的光照分布。
3.极端过曝或极暗场景 例子:逆光拍摄导致大面积过曝,或夜景极暗环境。
失效原因:过曝像素丢失了反射率信息(全部截断为 255),暗部像素被噪声淹没。此时计算出的 𝑝 p-范数无法反映真实的光源强度。
4.场景中完全没有高光/白点,且色彩高度集中 例子:拍摄一堆纯黄色的香蕉,没有背景。
失效原因:即使 𝑝 p 取中间值,高亮区域依然是黄色的,算法会错误地估计光源偏黄,校正后香蕉会变成灰白色。
5.光源本身具有强烈色彩且无中性物体 例子:在纯红色霓虹灯下拍摄纯绿色物体。
失效原因:SoG 无法区分"光源是红色"还是"物体是红色",这是所有基于统计假设的白平衡算法的盲区。