【OpenCV开发之二】图像白平衡part_one

来源:互联网 发布:js获得窗口宽度 编辑:程序博客网 时间:2024/06/06 10:45

一、概念

        什么是白平衡呢?白平衡就是针对不同色温条件下,通过调整摄像机内部的色彩电路使拍摄出来的影像抵消偏色,更接近人眼的视觉习惯。白平衡可以简单地理解为在任意色温条件下,摄像机镜头所拍摄的标准白色经过电路的调整,使之成像后仍然为白色。这是一种经常出现的情况,但不是全部,白平衡其实是通过摄像机内部的电路调整(改变蓝、绿、红三个CCD电平的平衡关系)使反射到镜头里的光线都呈现为消色。


二、方法

1、灰度世界算法

        灰度世界算法以灰度世界假设为基础,该假设认为:对于一幅有着大量色彩变化的图像,R、G、B,三个分量的平均值趋于同一灰度值。从物理意义上讲,灰色世界法假设自然界景物对于光线的平均反射的均值在总体上是个定值Gray,这个定值近似地为“灰色”。颜色平衡算法将这一假设强制应用于待处理图像,可以从图像中消除环境光的影响,获得原始场景图像。

算法执行步骤:
(1)确定灰度均值:Gray

(2)计算三个通道的增益:Kr,Kg,Kb;

(3)调整R、G、B分量;

这种算法简单快速,但是当图像场景颜色并不丰富时,尤其出现大块单色物体时,该算法常会失效。

2、完美全反射理论

       完美全反射理论(perfect Reflector)假设图像上最亮点就是白点,并以此白点为参考对图像进行自动白平衡,最亮点定义为R+G+B的最大值。

3、动态阈值算法

参考论文:A Novel Automatic White Balance Method For Digital Still Cameras

算法分为两个步骤:白点检测和白点调整。


三、验证

        通过测试效果表明:动态阈值法,1、该算法效果非常好;2、对块大小不太敏感,因此非常适合于自动化操作。


原创粉丝点击