白平衡算法总结

上传人:枫** 文档编号:469332185 上传时间:2022-10-22 格式:DOC 页数:21 大小:834KB
返回 下载 相关 举报
白平衡算法总结_第1页
第1页 / 共21页
白平衡算法总结_第2页
第2页 / 共21页
白平衡算法总结_第3页
第3页 / 共21页
白平衡算法总结_第4页
第4页 / 共21页
白平衡算法总结_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《白平衡算法总结》由会员分享,可在线阅读,更多相关《白平衡算法总结(21页珍藏版)》请在金锄头文库上搜索。

1、灰色世界法(grey world method)要计算未知光源的特性必须从图片中提取相关的统计特性。当我 们能够仅使用一个统计特性就获得未知光源特性时,算法就变得非常 简单了。在这种情况下,未知光源必须在整幅图片上都是统一的。均 值于是就成为了此类方法之下最好的统计指标。而灰色世界法正是利 用了均值作为估算未知光源的关键统计量。从物理意义上说,灰色世界法假设自然界景物对于光线的平均反 射的均值在总体上是个定值,这个定值近似地为“灰色。在给定图 片的白平衡算法中,灰色世界假设图片中的反射面足够丰富,以至于 可以作为自然界景物的一个缩影。假设这幅图片是在经典光源下拍摄的, 其均值就应该等于灰色。假

2、设这幅图是在非经典光源下拍摄的,那么均 值就会大于或者小于灰色值。而该均值对于灰色的偏离程度那么反映了 未知光源相对于光源的特性。虽然这个方法比拟简单,但是仍然可以从一些方面进行调整。一 个方面就是对于灰色的定义形式的选择。包括对于光谱的定义、对于 光谱成分的定义和在经典光源之下的RGB的响应。另一个更加重要 的调整方面就是对于灰色的选择。不管如何定义灰色,最正确的灰色之 选必然是自然界实事上出现的灰色。但是这个值是无法获得的(除非 是合成数据),所以对于灰色的选择是不同的灰色世界算法的一个重 要的区别点。一个方法是假设这个灰色就是实事上的灰色。也就是说反射光谱 是均衡的。给定光源之卜的RGB

3、响应是纯白色对此光源的响应值的 一局部。比方说,可以使用50%作为反射率虽然这个灰色值对于 人眼视觉习惯而言可能过于明亮。另一种方法,就是根据大量的数据提炼出一个均值,并把它定义 为灰色。这种方法提炼的灰色值可能因为数据库使用的不同而有所不 同。最终提炼的灰色也能仅适用于原始的数据库,而对于数据库未包 括的图片的适用度就会比拟差一些。确定下来的灰色表达形式可以用 Grey;来表示。下标i表示信道,上标c为canonical的首字母,表 示经典光源。在确定灰色的表达形式后只要用RGB响应与经典光源下灰色的 比值来归一化图片就可以了。假设RGB响应均值为Av1,下标i 表示信道,上标U为Unkno

4、wn的首字母,表示未知光源。那么归 一化率的计算式为。.如下式所示:1O =些1 Avgi根据光源转换理论,从未知光源到经典光源以下图片表达式的转换 式如下式所定义:qC _0. gUp 2 P3-那么,灰色世界法的计算过程如以下图所示:本实验选择的灰色值为(129, 129, 129),具体的matlab实现程序如下:%灰色世界法clear all;%清屏nng=inueadCbl bmp,);%读取位图的rgb值并存在名为img的三维矩阵中AveR=mean(niean(iing(:,:, 1):Ave G=ine aii(me an(inig(:, 2);%计算1通道的均值 %计算G通道

5、的均值 %计算日通道的均值AveB=mean(niean(iing(:,:,3):Qi-129/AveR;%计算R通道的归一化率Qi%Qg=129/AveG;%计算G通道的归一化率Qg%Qb=129/AveB;%计算B通道的归一化率Qb%光源变换iingO(:,:,l )=Qi*iing(imgO(:,:,2)=Qg*img(:,:,2);imgO(:,:,3)=Qb*iing(:,:,3);figiue,iinshow(iingO),title(,变换后图片) 显示图片偏蓝图片白平衡调整后的图片正常光照下的图片基于动态阀值的自动白平衡法(Automatic White Balance Met

6、hod)这个算法是通过对图片的ycbcr色空间的分析来确定参考白点的, 所以次算法可以说是自适应白平衡算法。本算法选择参考白点的阀值 是动态变化的,所以对于不同的图片,其阀值也不同。通过对图片的 cbcr坐标空间的分析,我们可以看到一个接近白色的区域(neai-wliite region)是包含着参考白点的。通过这个思路,我们可以通过对图片 分区,然后找出参考白点,然后在通过von kvies model来调整图片 时期实现白平衡。这样,这个算法就包括了两个步骤了:寻找参考白 点,白点调整。寻找参考白点:为了确定一个接近白色的区域,我们就必须把RGB色空间转换成 YCbCr色空间。色空间转换后

7、,就是计算Cb、Ci的均值Mb、Mr;然后通过下式 计算Cb、Ci的均方差Db、Dr: (|Cb(i,j) Mb|)/Db = “JIn (|Cr(i,j) Mr|)/ Dr=/N为了提高算法的稳健性,将图片分为几个区域并且计算每个区域 的Mb、Mr、Db、Dr,如果一个区域的Db, Dr太小,那么这个区域 就没有足够的色彩变化,就可以丢弃掉了。这样可以防止大面积的统 一色调对结果的影响。接下来就可以通过下面的关系式得到接近白色区域的所有像素点 了:|Cb(i, j) (Mb + Db X sign(Mb)| V 1.5 X Db|Cr(iJ) (1.5 x Mr 4- Dr x sign(M

8、r)| 1.5 x Dr根据亮度值,我们选择接近白色区域中的10%的候选参考白点最 为参考白点。在白点确定后,就可以从参考白点中得到信道增益的值 了。为了维持整幅图片的亮度不变,亮度的最大值被用来得到信道增 益。所以信道增益不及和参考白点有关还与亮度的最大值有关,其表达式如下:max /、avew#%fvewGgainG = GgainXGYImax /avew其中丫血宓是整幅图片像素的亮度最大值,Ravew、Gavew avew是参考白点的RGB信道的均值。最后,根据von-kvies model来调整图片,使其到达白平衡的效果。调整的表达式如下:R = RgainB = Bgm其中RGB是

9、图片的像素点的三个信道值,白是调整之后的图片 的像素点的三个信道值。其源程序如下:%Piogiain for wliite balancing%fiuiction W=wbalaiice(iin)cleai* all;close all;%读取照片的信息filename, patlmaine = iiigetfileC1 * .j pg; * .bmp; * .gif, Pick an image-file1);if ise qual( filename. 0)disp(rUsei selected Cancel);elsedisp(User selected1, fiillfile(patl

10、iiiaine, filename);endftiaine=strcat(patluiaine.filenaine);iin=iime ad( fiiaine);iin2=iin;iin 1 =xb2ycbci(iin);图片的 RGB 值转换成 YCbCr 值Lu=iml(:,:,l);Cb=unl(:,:,2);Cr=iml(:,:,3);x y z=size(iin);tst=zeros(x,y):%计算以)、Ci的均值Mb、Mi%Mb=sum(suin(Cb);Mi-siun(siun(Cr);Mb=Mb/(x*y);Mi-Mr/(x*y);%计算Cb、Ci的均方差Db=smn(siu

11、n(Cb-Mb)/(x*y);Di-siun(siun(Cr-Mr)/(x *y);%根据阀值的要求提取出neai-wliite区域的像素点cnt=l;fori=l:xfor j=l:ybl =Cb(ij)-(Mb+Db *sigii(Mb);b2=Cr(i,j)-(1.5 *Mr+Dr*sign(Mr);if (blabs(1.5*Db) & b2abs(1.5*Dr)Ciiiy(cnt)=Lu(ij);tst(i,j)=Lu(ij);cnt=cnt+l;endendendcnt=cnt-l;iy=soi(Ciny,descend);%将提取出的像素点从亮度值大的点到小的点依次排列iui=i

12、oiuid(cnt/10);Ciny2(l:nn)=iy(l:nn);%提取出 neai-wliite 区域中 10%的亮度值较大的像素点做参考白点%提取出参考白点的RGB三信道的值imi=iiiiii(Ciiiy2);c=0;fori=l:xforj=l:yif tst(ij)nmtst(i,j)=0;elsetst(ij)=l;c=c+l:endendendR=iin(:,:,l);G=im(:,:,2);B=im(:,:3);R=double(R).*tst;G=double(G).*tst:B=double(B).*tst;%计算参考白点的RGB的均值Rav=ine aii(me ai

13、i(R);Gav=ineaii(ineaii(G);B av=inean(meaii(B);Ymax=double(inax(inax(Lu)/15;%计算出图片的亮度的最大值%计算出RGB三信道的增益Rgain=Y max/Rav;Ggaiii=Y max/Gav;Bgaiii=Ymax/B av;%通过增益调整图片的RGB三信道im(:,:,2)=iin(:,:,2)*Ggain:%显示图片W=iin;figure,imshow(im2, ),title(* 原图);figure,imshow(iin, ),titled 白平衡后的效果图)#黄偏色图片正常光照下的图片次算法的缺点是运行速度

14、慢,但是对图片的复原效果还是比拟显 著的。其他白平衡算法镜面法(Perfect Reflector Model)根据图像形成理论,对于纯白色的反射面而言,无论光源是什么 颜色,最终反射后的颜色总能完全表现出光源的颜色。如果景物中有 纯白的局部,那么就可以直接从这些像素中提取出光源信息。基于这 种思想的方法都被称为是镜面法。与灰色世界法类似的,镜面法也有多种调整方式。在本文中着重 介绍两种。第一种方法较为根本也较为简便。这种方法假设图片中一定有纯 白色面存在,那么在经典光源下,图片中所有像素点三个信道的最大 值都应该等于255,或者是一个给定的纯白色的值。在任何其他的光 源下,图片纯白色点的像素值就会小于经典光源下的纯白色,并且这 些点将代表整幅图片中最亮的点。那么只要将各信道的值按比例规一 化到最大值纯白色就可以获得在经典光源下的图片了。假设经典的白色表达形式可以用Whit皆来表示。下标i表示信道, 上标c表示经典光源。假设RGB响应的最值为M,下标i表 示信道,上标U表示未知光源。那么归一化率的计算式为如下式所 示:_ Wliite i i= W根据光源转换理论,从未知光源到经典光源以下图片表达式

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号