Shades-of-Gray (SoG) 算法--白平衡算法

一、SOG算法概述

1.Shades-of-Gray (SoG) 算法是白平衡领域中一个非常优雅的框架。它的核心贡献在于,将灰度世界(Gray-World)和完美反射(White-Patch)这两个看似对立的算法,统一到了同一个数学框架下。

二、对SOG算法取对数

在实践中,很多白平衡算法都会先对图像取对数,然后在 log 域进行光源估计。例如:

三、失效场景

以下场景中,SoG 算法(无论 𝑝 p 取何值)通常都会失效或表现不佳:

1.大面积单色主导的场景 例子:大面积蓝天、茂密的绿色森林、红色的花海。

失效原因:破坏了"场景平均反射率为灰色"的核心假设。算法会将单色背景误认为光源颜色,校正后画面会严重褪色或出现补色偏差。

2.多光源/混合光源场景 例子:室内暖黄灯光与窗外冷蓝日光同时存在的场景。

失效原因:全局统计算法只能给出一个全局光源估计,无法处理空间上不均匀的光照分布。

3.极端过曝或极暗场景 例子:逆光拍摄导致大面积过曝,或夜景极暗环境。

失效原因:过曝像素丢失了反射率信息(全部截断为 255),暗部像素被噪声淹没。此时计算出的 𝑝 p-范数无法反映真实的光源强度。

4.场景中完全没有高光/白点,且色彩高度集中 例子:拍摄一堆纯黄色的香蕉,没有背景。

失效原因:即使 𝑝 p 取中间值,高亮区域依然是黄色的,算法会错误地估计光源偏黄,校正后香蕉会变成灰白色。

5.光源本身具有强烈色彩且无中性物体 例子:在纯红色霓虹灯下拍摄纯绿色物体。

失效原因:SoG 无法区分"光源是红色"还是"物体是红色",这是所有基于统计假设的白平衡算法的盲区。

相关推荐
海宇大数据40 分钟前
零信任架构实战:基于海宇活体识别V步骤1构建自动化远程公证会话初始化网关
运维·人工智能·架构·自动化
Latchh1 小时前
前端导出的JPEG红字发糊,质量要拉到100才清楚
前端·图像处理·人工智能·计算机视觉
ebiobiz1 小时前
极海 APM32 使用 Nimmake 编译指南
c++·python·单片机·嵌入式硬件·mcu
青山木1 小时前
Hot 100 --- 编辑距离
java·数据结构·算法·leetcode·动态规划
思考着亮1 小时前
2.skill
人工智能
code_slave(码畜)1 小时前
微服务架构落地:基础服务 —— 报表服务(AI 集成篇:AI 增强报表能力)
人工智能·spring boot·spring cloud·微服务·架构
码上观世界1 小时前
Paseo 是如何统一管理 Claude Code 和 Codex 的?
人工智能·codex
长弓三石1 小时前
把 AgentScope Harness 装进 RuoYi-Vue-Plus:纯 Java AI 平台的集成实践
java·人工智能·agent
思考着亮1 小时前
3.什么是Harness Engineering?什么又是Loop Engineering?
人工智能