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

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

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

  1. 白平衡与色温

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

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

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

  1. 白平衡的方法介绍

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

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

  1. 计算三个通道的平均灰度
  2. 计算三个通道的增益系数
  3. 原始值乘上增益系数

matlab代码如下:

%%白平衡与色温紧密相关,不同色温光源下图像会呈现不同程度的偏色
%%由于人眼独特的适应性,在不同光照条件下观看物体时不会出现偏色,而就没这么先进了
%%蓝色光色温高,红色光色温低clc;
clear all;
close all;
tic;
imgSrc = imread('E:\picture\03-work\02-imgProc\00-ISP\wb_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 = BCoef * 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;

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

  1. 考虑硬件化实现

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

  1. 帧有效期间,完成各个分量数据的累加;
  2. 帧消隐期间,完成通道平均灰度与增益系数的计算;
  3. 下一帧有效期间,使用上一帧计算的增益系数完成数据调整,同时,完成各个分量数据的累加,依此下去。

参考:

[1] http://www.cambridgeincolour.com/tutorials/white-balance.htm

[2] https://www.cnblogs.com/Imageshop/archive/2013/04/20/3032062.html

图像白平衡原理及实现相关推荐

  1. 【图像处理】白平衡原理及实现

    1.白平衡的出现 白平衡,顾名思义,即白色的平衡,由于人眼的适应性,在不同色温下,都能准确判断出白色,但是相机就差远了,在不同色温的光源下,图像会出现偏色,与人眼看到的颜色不一致,因此需要进行白平衡处 ...

  2. Matlab实现图像白平衡(灰度世界法、全反射算法)

    参考:https://www.cnblogs.com/molakejin/p/5766132.html 白平衡 白平衡的英文为White Balance,其基本概念是"不管在任何光源下,都能 ...

  3. 《Kinect应用开发实战:用最自然的方式与机器对话》一3.4 深度图像成像原理...

    3.4 深度图像成像原理 Kinect有发射.捕捉.计算视觉重现的类似过程.严格说来,Kinect的"深度眼睛"是由一个红外投影机和红外摄像头组合而成的,投影和接收互为重叠,如图3 ...

  4. CV:计算机视觉技术之图像基础知识(二)—以python的skimage和numpy库来了解计算机视觉图像基础(图像存储原理-模糊核-锐化核-边缘检测核,进阶卷积神经网络(CNN)的必备基础)

    CV:计算机视觉技术之图像基础知识(二)-以python的skimage和numpy库来了解计算机视觉图像基础(图像存储原理-模糊核-锐化核-边缘检测核,进阶卷积神经网络(CNN)的必备基础) 目录 ...

  5. 前端性能优化之图像优化原理

    前端性能优化中,图像的优化是非常重要的一环,为什么要说图像的优化呢,而不是我们常见的图片优化?因为这里的图像包括矢量图和位图,我们常说的图片优化是指位图的优化.这篇文章转载至奇舞周刊,大佬总结的非常好 ...

  6. unity图像压缩算法原理

    概述 在计算机图形学中,存在许多纹理压缩方案.压缩既减少了纹理内存占用,又降低了使用纹理的带宽要求.本文中,"纹理压缩"与"图像压缩"不同,因为纹理压缩方案的设 ...

  7. IOS – OpenGL ES 调节图像白平衡/色温 GPUImageWhiteBalanceFilter

    目录 一.简介 二.效果演示 三.源码下载 四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 Ope ...

  8. 图像成像原理与相机标定

    一.图像成像原理 世界坐标系到相机坐标系 世界坐标系是空间中根据需求任意指定的坐标系,相机坐标系是以镜头为原点,光心方向为Z轴方向的坐标系. 同一个点在不同坐标系下的坐标可以通过平移旋转的仿射变换得到 ...

  9. 图像卷积原理及MATLAB实现

    数字图像卷积原理,matlab的conv2函数,不使用con2函数实现卷积 图像卷积原理 卷积,Convolution.卷积是两个变量在某范围内相乘后求和的结果.如果卷积的变量是序列x(n)和h(n) ...

  10. 图像仿射变换原理3:仿射变换类型及变换矩阵详解

    ☞ ░ 老猿Python博文目录:https://blog.csdn.net/LaoYuanPython ░ 仿射变换博文传送门(带星号的为付费专栏文章): *图像仿射变换原理1:齐次坐标来龙去脉详解 ...

最新文章

  1. 单文档应用程序弹出新对话框_简介——文档
  2. 【小工匠聊Modbus】05-数据类型
  3. python进阶(十七)xml(下)
  4. 开源游戏《一小时人生》GitHub仓库被删,CEO亲自道歉
  5. 洛谷—— P1375 小猫
  6. Word中公式编辑倒V和横线加法
  7. Educational Codeforces Round 118 (Rated for Div. 2)
  8. 摘要-Amira用户指南
  9. 变量命名神器Codelf
  10. 挂载光盘linux内核升级,华为服务器通过mgmt口挂载光盘装系统及Linux系统rescue模式下修复内核...
  11. 【题解刷题总结】青蛙的约会
  12. 大数据正式京淘附加爬虫
  13. C# URL编码转换 URL转码 UrlDecode UrlEncode
  14. 弘辽科技:拼多多关键词排名有什么用?有什么规则?
  15. PEPC丨磷酸烯醇丙酮酸羧化酶应用实例展示
  16. 全国、县区级行政区高程和坡度参数计算结果数据
  17. algorithms sort
  18. matlab布林线代码,精品布林线主图指标 源码 通达信
  19. Kakaotalk PC端无法登录,错误代码50151
  20. 模型中各变量对模型的解释程度

热门文章

  1. 实对称阵可对角化的几种证明
  2. Java牛客项目课_仿牛客网讨论区_已经看完的部分
  3. IDEA 运行 Tomcat 中文乱码的问题
  4. 三维点云数据处理软件供技术原理说明_三维点云数据获取方法及获取系统与流程...
  5. 六轴传感器ICM20602芯片手册学习笔记
  6. 深度linux网卡配置,Deepin 15.11 命令行配置静态IP
  7. CAD插件学习系列教程(一) 贱人工具箱的使用
  8. Comsol多孔介质内的粒子流动案例,可以追踪粒子运动轨迹
  9. PR转场预设 放大特效带有重影效果的PR视频转场预设
  10. 基于51单片机的声音分贝测量与显示仿真