白平衡算法之Gray World、White Patch、SoG

开坑记录一下白平衡相关算法,从两个最基本的白平衡算法开始。

白平衡算法之Gray World和White Patch

  颜色作为物体最基本的属性,在大部分场合对人类视觉而言是一个能够轻而易举捕获的信息。但在数字成像过程中,颜色是一种及其不稳定的图像特征。数字成像时获取的颜色主要依赖三个因素:物体表面光谱反射率、场景中的光照条件和成像器件的对光的灵敏度曲线。人类视觉系统存在一种颜色恒常性功能,能够在不同的光照下自动消除光照的影响,从而获得较稳定和准确的物体颜色。但是成像设备不具备这种特质,因此白平衡算法对成像颜色好坏起到了至关重要的作用。

  白平衡算法的核心内容就是估计光照。但是从一幅已有图像去估计光照本身就是一个病态问题,因此,现有的白平衡算法基本都是基于一定的假设和先验条件。其中,Gray World和White Patch是两个基于各自假设,简单、实用的白平衡算法。


White Patch(MaxRGB)

  White Patch假设:图像中,RGB颜色通道的最大响应是由场景中的白色表面引起的。理论上白色表面可以反射场景光照的颜色,因此,RGB通道中最大的值将被作为图像的光照颜色。所以,该算法又被称为MaxRGB算法。其数学形式为:

max ⁡ x f ( X ) = k e (1) \max\limits_{x}f(X)=ke\tag1 xmaxf(X)=ke(1)

  其中 X X X表示像素点坐标, k k k为用于校准光照的常量, e e e为光照。该最大值是各通道分别计算,而不是必须是一个像素点的三通道最大。这就导致了该算法在很多场合中其实并不适用,因为该算法假设需要在场景中存在一个白色(标准光源下)像素点或者三通道反射率相同的点(灰点)。当场景中没有这样的点的时候,该算法的表现就会比较糟糕。而以后的许多算法也是在找白点上做了各种改进,该算法最大的优点就是简单高效。

  具体的实现也比较简单,实际用的时候,白点的定义也可以有很多。归一化后可以以1作为最大点,也可以用绿色通道最大值作为最亮点求各个通道的增益系数。

算法流程
  • 计算三通道各自最大值 R m a x R_{max} Rmax G m a x G_{max} Gmax B m a x B_{max} Bmax
  • 计算增益, k = [ R m
  • 13
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值