Bayer彩色自动白平衡在彩色自动白平衡在FPGA上的实现上的实现
在不同的光源或者天气条件下光谱特性是互不相同的,这被称之为色温。从物理意义上讲,人们看到的物体之
所以呈现出特定的颜色,是因为光线照向物体时,物体所反射的光在人眼视觉系统中呈现出这种特定的颜色。
目前在工程上应用的自动白平衡算法主要有全局白平衡算法和局部白平衡算法两大类。全局白平衡算法
以“灰度世界法”GWM(Gray World Method)为代表,其认为所拍摄的图像有丰富的色彩变化,R、G和B三色
分量的统计平均值应该相等,并以该均值作为白平衡校准的依据。局部白平衡算法以“镜面法”PRM(Perfect
Reflector Method)为代表,该算法认为一幅图像中最亮像素点对应于光滑或者
在不同的光源或者天气条件下光谱特性是互不相同的,这被称之为色温。从物理意义上讲,人们看到的物体之所以呈现出
特定的颜色,是因为光线照向物体时,物体所反射的光在人眼视觉系统中呈现出这种特定的颜色。
目前在工程上应用的自动白平衡算法主要有全局白平衡算法和局部白平衡算法两大类。全局白平衡算法以“灰度世界
法”GWM(Gray World Method)为代表,其认为所拍摄的图像有丰富的色彩变化,R、G和B三色分量的统计平均值应该相
等,并以该均值作为白平衡校准的依据。局部白平衡算法以“镜面法”PRM(Perfect Reflector Method)为代表,该算法认为一
幅图像中最亮像素点对应于光滑或者镜子表面的物体,这样的像素点最大限度反映了照射光线的光谱信息,对这部分点做色彩
信息统计并作为色温校正的依据。全局白平衡算法有较大的局限性,当场景过亮、过暗,或者色彩比较单一时,算法几乎完全
失效。
在工程上,需要对帧频较高的原始视频图像做实时的白平衡恢复,而目前的自动白平衡方法,算法复杂,计算时间较长,
难以实现对视频流的实时处理。本文就针对以上问题,讨论了一种在FPGA上实现的、对视频流实时白平衡处理的自适应方
法。
1 自动白平衡算法自动白平衡算法
在FPGA设计的过程中,采用局部白平衡的方法,主要有3个基本步骤:
(1)色温估计
色温估计是自动白平衡中最重要的一步,根据算法估计当前场景的色温,给增益计算提供依据。选择符合一定条件的区域
而不是选择符合一定条件的点,可以提高参考点选择的准确性,但是直方图均衡化处理本身存在灰度级“简并”现象,这也是该
文算法的不足。文献直接在原图像的YCbCr空间,用LoG算子对Cb和Cr分别作色度边缘提取,获得的色度边缘即为参考白点
区域。
(2)增益计算
增益计算是在色温估计的基础上,求取色温修正系数的过程,主要有3种方法:
①查表法[1]。事先统计出一张表,记录不同的色温所对应的通道增益,具有速度快的优点。但由于表的容量有限,不能实
现各种色温情况的连续调节。
②平均值法。对于参考白点区域有R=G=B,即Cb和Cr的分量为零。得到各通道的增益如下:
③迭代法。设G通道的增益为常数1,R和B通道的增益分别为?自,?滋。迭代法根据参考白点区域Cb和Cr的关系,通过
不断地调节?滋和?自的值,便可得到各通道最终增益值。文献[1]中提到的方法,在场景出现大量色块时,容易出现色彩振
荡现象。本文在其基础上做出了如下改进,增加对白点数目的判断:判断是否WhitePointNum>N,只有场景的白点数目大于
阈值N时,才认为色温估计有效,这样能避免色温估计无效时对修正系数的误操作导致的色彩振荡。增加了对当前色温的判
断:判断是否|Cb|+|Cr|<M,如果小于阈值M,则认为修正后的图像已经达到白平衡,不做增益调节。图1中?滋和?自的初始