图像白平衡原理及实现

编程实验

72人已加入

描述

  概述

  白平衡,字面上的理解是白色的平衡。白平衡是描述显示器中红、绿、蓝三基色混合生成后白色精确度的一项指标。白平衡是电视摄像领域一个非常重要的概念,通过它可以解决色彩还原和色调处理的一系列问题。那什么是白色?这就涉及到一些色彩学的知识,白色是指反射到人眼中的光线由于蓝、绿、红三种色光比例相同且具有一定的亮度所形成的视觉反应。

  %%白平衡与色温紧密相关,不同色温光源下图像会呈现不同程度的偏色

  %%由于人眼独特的适应性,在不同光照条件下观看物体时不会出现偏色,而就没这么先进了

  %%蓝色光色温高,红色光色温低

  clc;

  clear all;

  close all;

  tic;

  imgSrc = imread(‘E:picture3-work2-imgProc0-ISPwb_sardmen-incorrect.jpg’);

  imgDst = imgSrc;

  %%第一步,计算三个通道的平均灰度

  imgR = imgSrc(:,:,1);

  imgG = imgSrc(:,:,2);

  imgB = imgSrc(:,:,3);

  RAve = mean2(imgR);

  GAve = mean2(imgG);

  BAve = mean2(imgB);

  aveGray = (RAve + GAve + BAve) / 3;

  %%第二步,计算三个通道的增益系数

  RCoef = aveGray / RAve;

  GCoef = aveGray / GAve;

  BCoef = aveGray / BAve;

  %%第三步,使用增益系数来调整原始图像

  RCorrection = RCoef * imgR;

  GCorrection = GCoef * imgG;

  BCorrection = RCoef * imgB;

  imgDst(:,:,1) = RCorrection;

  imgDst(:,:,2) = GCorrection;

  imgDst(:,:,3) = BCorrection;

  figure,subplot(1,2,1),imshow(imgSrc),title(‘original image’);

  subplot(1,2,2),imshow(imgDst),title(‘white balanced image’);

  toc;

  白平衡,顾名思义,即白色的平衡,由于人眼的适应性,在不同色温下,都能准确判断出白色,但是相机就差远了,在不同色温的光源下,图像会出现偏色,与人眼看到的颜色不一致,因此需要进行白平衡处理。在数码相机中,往往有ISP,这里面会做AWB(自动白平衡)处理。

  下面先来说说白平衡与色温,然后介绍一种简单的白平衡算法,并且考虑其硬件化实现。

   

  白平衡后的图像看起来更真实,这里说的真实,是指人眼实际看到的效果。

  白平衡与色温

  色温指某一温度下黑体所辐射的光谱,我们知道,blackbody吸收所有光谱,既不反射也不透过,因此,我们看到的黑体的颜色只与其表面温度相关。不同温度下黑体辐射出的光谱相对强度如下,可以看出,温度升高时,辐射的峰值波长在向短波方向移动,我们知道,温度越高,能量越大,而红橙黄绿蓝锭紫,波长依次减小,光子能量依次增大。因此,色温越高,光线越偏冷色,色温越低,光线越偏暖色。

   白平衡

  有些数码相机在做白平衡时,可以手动选择光源,不同光源的色温如下:

   白平衡

  自动白平衡(auto white balance,AWB),相对来说可能没有手动白平衡效果好,对于非摄影应用来说,由于无须人为设置,而广泛应用成像监控领域。

  白平衡的方法介绍

  白平衡的算法很多,有灰度世界法,完美反射法、动态阈值法,这里先介绍一种比较简单的,灰度世界法。

  该方法以灰度世界假设为前提,认为对于一幅有大量色彩的场景,R、G、B分量的平均值趋于同一个灰度。算法大致可以分为以下三步:

  计算三个通道的平均灰度

  计算三个通道的增益系数

  原始值乘上增益系数

  matlab代码如下:

  效果如下,该算法适用于有大量色彩的场景。

 

  考虑硬件化实现

  对于数字硬件来说,要考虑算法硬件实现的可能性,一般来说,可以利用帧间数据相关性,使用上一帧计算得到的各个分量的增益系数来完成图像数据的调整。算法实现如下:

  帧有效期间,完成各个分量数据的累加;

  帧消隐期间,完成通道平均灰度与增益系数的计算;

  下一帧有效期间,使用上一帧计算的增益系数完成数据调整,同时,完成各个分量数据的累加,依此下去。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分