一种基于YUV颜色空间的自动白平衡算法

       自动白平衡算法一般可以分为两类:全局自动白平衡算法和局部自动白平衡算法。全局自动白平衡算法利用图像中所有像素进行自动白平衡校正;而局部自动白平衡算法利用满足特定条件或先验知识(满足白区、人脸肤色等)的像素进行自动白平衡校正。

      典型的全局自动白平衡算法包括常见的灰度世界法和完美反射法。这两种全局算法在实际应用中有较好的表现,但是也存在明显的不足。灰度世界方法对于实际场景某一个或两个色彩分量明显偏大的情况校正结果会产生明显的错误,比如整片蓝色天空或者整片绿色草地,此时灰度世界法将失效。完美反射法只利用了图像中少数像素点,其计算的结果并不稳定。

为了克服上述算法的确定。作者提出来了一种利用图像所包含的灰点进行自动白平衡矫正的局部自动白平衡算法。其理论依据是:图像中的灰点被定义为某一像素R、G、B三通灰度值相等的像素点。自然场景中所拍摄的图像中,包含大量的灰点,诸如白色物体、阴影、黑色物体、灰度物体等。其具体算法实现为:

  1. 在YUV颜色空间对图像中的灰点进行研究。

将RGB颜色空间转换到YUV颜色空间:

图像中灰色区域再RGB空间满足R=G=B关系,对应在YUV颜色空间满足:

我们知道,在低色温所拍摄的图像会偏红,在高色温拍摄的图像将偏蓝。所以在低色温或高色温下所拍摄的图像其灰点将不再满足上式关系。为了识别出在不同色温下图像的灰点,我们以低色温情况为例说明:

在低色温下图像的红色分量将发生改变,我们记做R’,可表示为

其中,R为标准光照(拍摄灰度区域R通道灰度值基本不偏色所在的光源)下的红色分量,k_{R}为R通道的影响因子。将上式转到YUV空间有:

由灰点定义可推到出:

同样的方法作用于高色温下可知:

定义指标:

由公式可知,给定任意色温下,k_{R}K_{B}为固定的值,F只与色温有关,且随 k_{R}K_{B}单调递增。在色温偏离标准色温不大的情况下,F值远小于1.因此,我们可以设定一阈值,判断该像素是否属于灰点像素。

其中,T是一个远小于1的阈值。由上式可知,当某一像素所计算的F值小于阈值T则可认为时属于灰点。T的大小确定了所识别的灰点数量。例如。当T为0.097时,相比于标准光源下,R通道分量增加10%或者B分量增加9.6%的像素点将会被认为是灰点。

 

2.白平衡增益递归调整。

当灰点选出之后,对所有选中的灰点进行统计。计算UV分量的平均值。

 

其中,\bar{R}_{\Omega }\bar{B}_{\Omega }\bar{Y}_{\Omega }分别为所选灰点R分量、B分量、Y分量的平均值。对灰点而言,\bar{U}_{\Omega }\bar{V}_{\Omega }应该为0或者趋近于0。\bar{U}_{\Omega }\bar{V}_{\Omega }的绝地值可揭示图像是否偏色,偏向何种颜色。如果\bar{U}_{\Omega }的绝对值大于的\bar{V}_{\Omega }绝对值,即表示\bar{B}_{\Omega }\bar{Y}_{\Omega }的差距大于\bar{R}_{\Omega }\bar{Y}_{\Omega }的差距,需要对B通道进行白平衡调整;类似的,如果\bar{V}_{\Omega }的绝对值大于\bar{U}_{\Omega }的绝对值,则表示需要对R通道进行白平衡调整。

 

白平衡增益调整具体流程为:

其白平衡模块具体实现为:

自动白平衡模块主要包含三步:1.灰点检测;2.误差计算;3自动白平衡增益调整。其中灰点检测出为:

误差信号记为\xi _{i },是期望的信号d_{i}\varphi _{i}的差值:

对于灰点而言,U、V分量的期望信号应该为0。\xi _{i }误差信号用来调整增益使得其误差信号趋于0或等于0。其增益调整使用迭代算法进行:

其中,i为迭代次数。当\varphi _{i}=\bar{U}_{\Omega },B通道增益将进行调整,R通道和G通道增益保持不变;当\varphi _{i}=\bar{V}_{\Omega },R通道增益将进行调整,B通道和G通道增益保持不变;其中递归调整的步长,K为控制增益改变大小的函数,如式下式所示:

通过迭代算法对增益的调整,使得最小化误差信号\xi _{i },即使得灰点的U、V分量趋于0。同时对增益的迭代调整,使得图像将平滑过渡,不出现突变的效果。

增益调整趋势图:

 

 

 

 

 

 

 

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值