AWB 算法原理

来源:互联网 发布:java mkdir 只读 编辑:程序博客网 时间:2024/05/29 06:30


AWB

AWB针对的问题:                                                                                                               

物体在不同的光源照射下,呈现的颜色是不同的,这是有光源的色温决定的,它使物体反射光谱较真实色彩有一定的偏差,其中,白色物体变化最为明显,在室内钨丝灯光这样的低色温的照射下,白色物体看起来会带橘黄色的色调,在这样的光照条件下拍出来的物体就会偏黄,但如果在蔚蓝的天空这样的高色温的照射下,则会带有蓝色色调。自动白平衡的目的就是消除不同光源造成的色彩偏差,使得拍摄出来的照片尽量符合人眼的习惯。

 

 AWB定理:

  1. 在同一色温环境中如果对一幅自色图像进行白平衡校正后.那么对于其他非白色图像就都能真实的再现物体的颜色,并且其颜色的色差值是唯一的。

  2. 利用色差值已知的非白色(R.B.G不为零)物体为参照物,同样可以实现白平衡处理

    AWB 算法。

灰度世界法(在RGB域上进行)
  1. 灰度世界算法基于这样一种假设,给出一份含有足够色彩变化的图像,那么这个场景的平均反射能抵消色差,即R,G,B分量的平均值几乎相等。

    Ravg = Gavg = Bavg,那么Y = Ravg + Gavg + Bavg,Ravg, Gavg, Bavg的比例系数分别为Ravg /YRavg /Y, Bavg/Y.最终G’= G, R’= G/ Ravg * R, B’= G/ Bavg* B.

    如果一副图像中包含的色彩并不丰富,那么灰度世界算法的假设就不成立,那么这种白平衡算法也就不正确,在此基础上,人们提出了改善的灰度世界算法,       算法步骤:

  1. 划分块区: 确定块的起始横坐标和纵坐标,横向块数,纵向块数,块的宽度和高度

  2. 预算 : 画色温曲线,从2500K13000K

  3. 求系数,算出每个块的Ravg/GavgBavg/Gavg,并把Ravg/Gavg代入色温曲线函数,算出B1avg/Gavg,然后比较Bavg/GavgB1avg/Gavg,如果他们满足下面式子,则此白区有效。

    (1+0.2) Bavg/Gavg≥B1avg/Gavg≥(1-0.2) Bavg/Gavg

    那么R的增益系数就为gainR =ΣG/ΣR; gainB =ΣG/ΣB.其中ΣG为满足条件的所有块区G分量的总和,ΣR为满足条件的所有块区R分量的总和,ΣB为满足条件的所有块区B分量的总和.

  4. 进行白平衡矫正

    R’= gainR *R; G’= G; B’= gainB *B.

白点检测法(在YUVRGB域共同运算)
  1. 选白点:条件YmaxYYminY-|Cb|-|Cr|>ß

  2. 求白平衡系数:计算所有统计为白点的像素点的R,G,B分量的平均值 即                                                                                  Ravg = Rsum/numwhite_pixel     Gavg = Gsum/numwhite_pixel        Bavg = Bsum/numwhite_pixel      Yavg = (Ravg+ Gavg + Bavg)/3                                          kr = Yavg/Ravg            kg = Yavg/Gavg                        kb = Yavg/Bavg

  3. 进行白平衡矫正

    R’= kr * R ; G’= kg *G; B’= kb * B

     

    基于色温估计的白平衡算法(原始数据)

    原理,根据图像像素的原始值确定图像的灰色点,进而根据确定的灰色点估算出图像光源的色温,再按照计算出来的色温对图像进行相应的调整。

  1. 色温曲线

  2. 判断色温,流程如上图,获得图像像素值以后,首先要判断该值是否在合适的范围内,如果像素值过低,则其中包含了太多的噪声信息,而像素值过高则已过曝,不能提供有效的颜色信息,由于采用图像的原始数据进行处理,在数据处理采用多个像素拼合成一个大像素处理,即每8个像素点为一组,算出R,G,B

    的平均值作为这个大像素的R,G,B值,这样数据处理量就变为原来的1/8,像素分好以后,对各个像素点进行色温判断,当确定像素点位于R/G,B/G空间的某个窗口时,那么就将该像素的R,G,B值分别附加到相应色温的像素的寄存器中,同时该色温对应的像素个数寄存器也相应加1,当整帧图像处理完时,取像素点个数多的色温为光源色温,相应的像素点用来计算R,G,B增益,

  3. 增益计算和白平衡矫正

    Rgain = Gaver/Raver

    Bgain = Gaver/Baver

    Ggain = 1

0 0