自动白平衡(AWB)算法
awb 色温计算方法

awb 色温计算方法AWB(自动白平衡)对于摄影师、摄像师和相机用户来说是一个非常重要的功能。
它可以根据不同的环境光线条件自动调整摄像机或相机的白平衡,使图像呈现真实、自然的色彩。
在摄影和摄像中,色温是描述光源颜色的一个重要参数。
它以单位“K”(开尔文)表示,表示光源发出的光线的颜色温度。
一般而言,颜色温度低于5000K的光源呈现出偏暖的橙色光,而高于5000K的光源则呈现出冷色调,蓝色为主。
AWB的计算方法有几种,最常见的是使用白色参考点进行计算。
在使用AWB功能时,摄像机或相机会通过取样图像中的白色参考点来计算出光源的色温,并自动调整白平衡以消除色偏。
为了更好地使用AWB功能,我们需要了解一些色温的基本知识。
不同光源的色温范围如下:自然阳光的色温在5500K左右,阴天的色温约为6500K,白炽灯的色温约为2800K,荧光灯的色温约为4200K。
在实际使用中,我们可以通过以下步骤进行AWB的设置:第一步是在环境中找到一个白色参考物,这可以是一张白纸、一个白色墙壁或其他白色物体。
确保所选的白色参考物处于相机或摄像机的画面中,并且充分受到所使用的光源的照射。
第二步是进行白平衡点的设置。
打开相机或摄像机的设置菜单,在白平衡选项中选择AWB功能,然后按下快门按钮或拍摄按钮进行测量。
第三步是查看测量结果。
在相机或摄像机的屏幕上,我们可以看到白平衡值的测量结果。
通常,设备会显示一个数字,该数字表示在AWB计算中使用的色温值。
最后一步是进行最终的调整。
根据设备显示的色温值,我们可以通过手动调整白平衡或使用设备提供的预设选项来微调图像的色温,以使图像呈现出自然、真实的颜色。
AWB作为一项先进的技术,可以大大简化我们在不同光源下的拍摄过程。
然而,我们需要注意,在某些特殊环境下,AWB可能无法准确测量色温,因此,在这些情况下手动设置白平衡可能是更好的选择。
总之,AWB是摄影师、摄像师和相机用户的有力工具,它可以帮助我们轻松地拍摄出色彩自然、真实的图像。
一种摄像头自动白平衡的算法及硬件实现[1]
![一种摄像头自动白平衡的算法及硬件实现[1]](https://img.taocdn.com/s3/m/0c64383b87c24028915fc3e6.png)
差的计算;
44 (总第 92 期) 2007·1·
http://www.cicmag.com
CIC 中国集成电路 China lnte gra te d Circult
设计
b.取图像特定区域的像素参与计算;
c.取图像中满足特定属性的像素参与计算。
当图像白色的部分较少,图像颜色比较单一时,
第一种方法必然会失效;而当第二种方法所选取的
图 1 图像较暗时的直方分布
将这种统计方法应用于彩色图像的 R、G、B 通 道,很显然,色彩分量重的通道的直方图必然倾向于 高的一侧,也就是说,以红色为例,若对一幅偏红的 图像作直方图统计,其 R 通道的直方图组成成分必 定集中在灰度级高的一侧,而 B 通道的直方图则可 能倾向于灰度级低的一侧。若对其直方图进行扩展, 使 R 分量占据更多的级别,则红色分量会得到一定 的减弱,不会集中在级别高的一侧,也就在一定程度
http://www.cicma g.com
2007·1· (总第 92 期) 43
设计
CIC 中国集成电路
China lntegrated Circult
2 增加直方图扩展的自动白平衡
2. 1 直方图处理
直方图处理及直方图的均衡化是很早就得到广 泛应用的一种数字图像处理方法,它通常是对图像 的灰度进行处理的,能有效地用于图像增强,提高图 像对比度等。在暗色图像中,直方图的组成成分集 中在灰度级低(暗)的一侧(图 1),类似地,明亮图 像的直方图则倾向于灰度级高的一侧(图 2)。这样 的图像要么太暗,要么太亮,看起来都不是很舒服。 因此需要对其作直方图均衡化,作用是使其像素占 有全部可能的灰度级并且分布均匀,从而得到一幅 灰度级丰富且动态范围大的图像。
白平衡算法总结

Cb(i, j) − Mb ) N Cr(i, j) − Mr ) N
Dr =
i ,j (
为了提高算法的稳健性,将图片分为几个区域并且计算每个区域 的 Mb、Mr、Db、Dr,如果一个区域的 Db,Dr 太小,那么这个区域 就没有足够的色彩变化,就可以丢弃掉了。这样可以避免大面积的统 一色调对结果的影响。
8
%计算 Cb、Cr 的均值 Mb、Mr% Mb=sum(sum(Cb)); Mr=sum(sum(Cr)); Mb=Mb/(x*y); Mr=Mr/(x*y); %计算 Cb、Cr 的均方差% Db=sum(sum(Cb-Mb))/(x*y); Dr=sum(sum(Cr-Mr))/(x*y); %根据阀值的要求提取出 near-white 区域的像素点% cnt=1; for i=1:x for j=1:y b1=Cb(i,j)-(Mb+Db*sign(Mb)); b2=Cr(i,j)-(1.5*Mr+Dr*sign(Mr)); if (b1<abs(1.5*Db) & b2<abs(1.5*Dr)) Ciny(cnt)=Lu(i,j); tst(i,j)=Lu(i,j); cnt=cnt+1; end end end cnt=cnt-1;
9
iy=sort(Ciny,'descend');%将提取出的像素点从亮度值大的点到小 的点依次排列% nn=round(cnt/10); Ciny2(1:nn)=iy(1:nn);%提取出 near-white 区域中 10%的亮度值较 大的像素点做参考白点% %提取出参考白点的 RGB 三信道的值% mn=min(Ciny2); c=0; for i=1:x for j=1:y if tst(i,j)<mn tst(i,j)=0; else tst(i,j)=1; c=c+1; end end end R=im(:,:,1); G=im(:,:,2); B=im(:,:,3); R=double(R).*tst;
光照问题之常见算法比较(附Python代码)

光照问题之常见算法⽐较(附Python代码)⼀、灰度世界算法①算法原理灰度世界算法以灰度世界假设为基础,该假设认为:对于⼀幅有着⼤量⾊彩变化的图像,R,G,B三个分量的平均值趋于同⼀灰度值Gray。
从物理意义上讲,灰⾊世界法假设⾃然界景物对于光线的平均反射的均值在总体上是个定值,这个定值近似地为“灰⾊”。
颜⾊平衡算法将这⼀假设强制应⽤于待处理图像,可以从图像中消除环境光的影响,获得原始场景图像。
⼀般有两种⽅法确定Gray值1) 使⽤固定值,对于8位的图像(0~255)通常取128作为灰度值2) 计算增益系数,分别计算三通道的平均值avgR,avgG,avgB,则:Avg=(avgR+avgG+avgB)/3kr=Avg/avgR , kg=Avg/avgG , kb=Avg/avgB利⽤计算出的增益系数,重新计算每个像素值,构成新的图⽚②算法优缺点这种算法简单快速,但是当图像场景颜⾊并不丰富时,尤其出现⼤块单⾊物体时,该算法常会失效。
③算法展⽰1def grey_world(nimg):2 nimg = nimg.transpose(2, 0, 1).astype(np.uint32)3 avgB = np.average(nimg[0])4 avgG = np.average(nimg[1])5 avgR = np.average(nimg[2])67 avg = (avgB + avgG + avgR) / 389 nimg[0] = np.minimum(nimg[0] * (avg / avgB), 255)10 nimg[1] = np.minimum(nimg[1] * (avg / avgG), 255)11 nimg[2] = np.minimum(nimg[2] * (avg / avgR), 255)12return nimg.transpose(1, 2, 0).astype(np.uint8)①效果图对⽐第⼀组图⽚场景颜⾊丰富,利⽤灰度世界假设法校正效果明显;第⼆组图⽚中颜⾊相对单⼀,校正效果也不是很理想;这也就导致了‘灰度世界假设算法’⽆法通⽤.⼆、直⽅图均衡化①算法原理直⽅图均衡化的基本思想是把原始图的直⽅图变换为均匀分布的形式,这样就增加了象素灰度值的动态范围从⽽可达到增强图像整体对⽐度的效果假设,⼀张图像的直⽅图如下图(左)所⽰,均衡化后,图像直⽅图如下图(右)显⽰②算法优缺点直⽅图均衡化,⼀般可⽤于灰度图像的对⽐增强(如:⼈脸阴影部位增强);如果直接对彩⾊图像R,G,B三通道分别均衡化后再合并,极容易出现颜⾊不均、失真等问题,所以,⼀般会将RGB图像转换到YCrCb空间,对Y通道进⾏均衡化(Y通道代表亮度成分)③算法展⽰在python中opencv3提供了能将灰度图直接均衡化的⽅法:equalizeHist(img),借助这个⽅法,可以实现彩⾊图像的均衡化1def hisEqulColor(img):2 ycrcb = cv2.cvtColor(img, cv2.COLOR_BGR2YCR_CB)3 channels = cv2.split(ycrcb)4 cv2.equalizeHist(channels[0], channels[0]) #equalizeHist(in,out)5 cv2.merge(channels, ycrcb)6 img_eq=cv2.cvtColor(ycrcb, cv2.COLOR_YCR_CB2BGR)7return img_eq④效果图对⽐第⼀组、第⼆组彩⾊图像中均衡化后图⽚对⽐原图更清晰,细节突出;第三组灰度图,均衡化在光照不均调节明暗的功能上,效果更明显三、视⽹膜-⼤脑⽪层(Retinex)增强算法①算法原理视⽹膜-⼤脑⽪层(Retinex)理论认为世界是⽆⾊的,⼈眼看到的世界是光与物质相互作⽤的结果,也就是说,映射到⼈眼中的图像和光的长波(R)、中波(G)、短波(B)以及物体的反射性质有关其中I是⼈眼中看到的图像,R是物体的反射分量,L是环境光照射分量,(x, y)是⼆维图像对应的位置它通过估算L来计算R,具体来说,L可以通过⾼斯模糊和I做卷积运算求得,⽤公式表⽰为:其中F是⾼斯模糊的滤波器,“ * ”表⽰卷积运算其中σ称为⾼斯周围空间常数(Gaussian Surround Space Constant),也就是算法中所谓的尺度,对图像处理有⽐较⼤的影响,对于⼆维图像,等于对应位置即:即:⼀般认为光照分量是原图像经过⾼斯滤波后的结果②算法优缺点Retinex算法,从SSR(单尺度Retinex)到MSR(多尺度Retinex)以及到最常⽤的MSRCR(带颜⾊恢复的多尺度Retinex);其中⾊彩恢复主要⽬的是来调节由于图像局部区域对⽐度增强⽽导致颜⾊失真的缺陷.先看⼀组公式:RMSRCR(x,y)'=G⋅RMSRCR(x,y)+bRMSRCR (x,y)=C(x,y)RMSR(x,y)C(x,y)=f[I'(x,y)]=f[I(x,y)/∑I(x,y)]Ci(x,y)=f[Ii′(x,y)]=f[Ii(x,y)∑j=1NIj(x,y)]f[I'(x,y)]=βlog[αI'(x,y)]=β{log[αI'(x,y)]−log[∑I(x,y)]}如果是灰度图像,只需要计算⼀次即可,如果是彩⾊图像,如RGB三通道,则每个通道均需要如上进⾏计算G表⽰增益Gain(⼀般取值:5)b表⽰偏差Offset(⼀般取值:25)I (x, y)表⽰某个通道的图像C表⽰某个通道的彩⾊回复因⼦,⽤来调节3个通道颜⾊的⽐例;f(·)表⽰颜⾊空间的映射函数;β是增益常数(⼀般取值:46);α是受控制的⾮线性强度(⼀般取值:125)MSRCR算法利⽤彩⾊恢复因⼦C,调节原始图像中3个颜⾊通道之间的⽐例关系,从⽽把相对较暗区域的信息凸显出来,达到了消除图像⾊彩失真的缺陷。
基于FPGA实现的自动白平衡算法

基于FPGA实现的自动白平衡算法自动白平衡(AWB)是一种图像处理技术,用于校正图像中的颜色偏差,以使其看起来更加自然。
在数字影像处理中,AWB通常使用在图像传感器信号采集后,用于调整不同光源下的颜色温度差异。
FPGA(现场可编程门阵列)是一种集成电路,其内部的逻辑门和存储器可以被重新编程,从而实现特定的功能。
在本文中,我们将介绍基于FPGA实现的自动白平衡算法。
该算法的实现过程如下:1.图像采集:连接图像传感器到FPGA板上的接口,读取原始图像数据。
在图像采集过程中,FPGA板上的ADC(模数转换器)可以将连续模拟信号转换为数字信号。
2.白平衡计算:在处理过程中,FPGA会对图像进行调整,使其在各个颜色通道上具有相同的增益。
白平衡算法通常使用灰度世界假设或动态范围扩展等方法。
在本文中,我们将使用灰度世界假设,即假设整个图像的平均亮度应该是中性色(例如灰色)。
首先,FPGA将图像分为不同的颜色通道(通常是红、绿、蓝)。
然后,对于每个颜色通道,FPGA计算该通道上的平均像素值。
然后,FPGA计算三个颜色通道上的平均亮度,并求取这三个值的平均值。
接下来,FPGA将这个平均亮度值与中性色(例如灰色)的预设亮度值进行比较,并计算一个增益因子。
这个增益因子将应用于每个颜色通道的像素值,以校正图像的颜色偏移。
3.增益应用:使用计算得到的增益因子,FPGA对每个颜色通道的像素值进行调整。
通过将增益因子乘以原始像素值,可以校正颜色偏移。
调整后的像素值将被存储在内存中,以供后续的图像显示或存储使用。
4.输出图像:FPGA将调整后的图像数据传输到显示设备(如显示器)或存储设备(如SD卡)上。
图像可以通过视频输出端口实时显示,或者可以保存在存储设备上以供后续处理和分析。
总结:本文介绍了基于FPGA实现的自动白平衡算法。
通过将图像采集、白平衡计算、增益应用和输出图像等步骤结合在一起,可以实现对图像颜色偏移的自动校正。
这样的系统能够提供更加真实和准确的图像呈现,对于计算机视觉和图像处理应用非常有用。
色温、EV、白平衡

二、相机感光度及Βιβλιοθήκη 置• 一、感光度的含义及表示:
国际标准化组织 (International Standards Organization)规定感光度是胶片对光线的化学反 应速度。相对于数码相机而言是指其图像传感器 对光线的敏感程度,用ISO表示。 二、感光度的设置: 1、 ISO50~100为低感光度。 在这一段可以获 得极为平滑、细腻的照片。通常只要光线强度能 够保证手持拍摄的安全快门时,一般使用低感光 度。
• 三、整级感光度的排列: 50 100 200 400 800 1600 3200 6400 它们之间的关系:相邻之间对光线的敏 感或反应速度成倍提高。
三、数码相机的白平衡
• 一、白平衡的概念:白平衡的基本概念是在任何 光源下,都能将白色物体还原为白色。 • 二、白平衡的作用:如果以该白色物体为基准色 的话,那么在同一光源环境里的其他颜色也能够 准确还原。 • 三、白平衡设置的原则:数码相机内的色温应该 与实际光源的色温相一致,这样才能准确还原真 实的色彩。
常见的色温值单位(K)
蔚蓝的天空 一般的蓝天
透过薄云的阳光 (中午)
10000-20000 7000左右 6500
热靴闪光灯 摄影强光泡 石英碘钨灯 摄影钨丝灯
150瓦家用灯泡
5500
3400 3300
平均的夏季阳光 5500左右 (上午10-下午3点) 早晨或下午的阳光
3200
2800 1930
2、ISO200~800属于中感光度。在这一段,需 要认真考虑这张照片做什么用,要放大到什么程 度,假如你能够接受噪点,中感光度设定降低了 手持相机拍摄的难度,提高了在低照度条件下拍 摄的安全系数,使成功率提高。 3、ISO1600~6400是高感光度。 在这一段 噪点明显,表现为拍摄物体暗部细节变得粗糙不 平滑,使用这样的设置,拍摄的题材内容的重要 性,往往超过了影像的质量,毕竟有的时候拍摄 的条件太差,拍到一张质量稍差的照片,总比根 本捕捉不到影像要好 的多。
awb色温计算方法

awb色温计算方法AWB(自动白平衡)是指通过调节图像的色温来实现白色或中性颜色的自动校正。
通过AWB校正后,可以减少色偏,使图像更真实、自然。
AWB色温计算方法是根据图像中的参考白色点或中性颜色点来进行计算。
下面将介绍AWB色温计算的方法。
AWB色温计算方法通常使用一种叫做“灰度世界假设”的假设。
该假设基于这样一种观点,即图像中的大多数物体是中性颜色的,即它们在RGB颜色空间中的R、G和B值是相等的。
这种假设为AWB色温计算提供了基础。
首先,需要获取图像中的参考白色点或中性颜色点。
这些点通常是在图像中选择的,在统计上被认为是中性颜色的点。
接下来,通过计算参考白色点或中性颜色点的RGB平均值来得到一个代表图像的整体颜色的平均值。
然后,使用得到的平均值来计算色温。
具体的计算方法基于与可见光中较佳白色光源的关系。
在计算中,常使用一个名为“Planckian locus”的概念。
该概念表示了较佳白色光源的颜色温度。
通过计算平均值点与Planckian locus 曲线之间的距离,可以推算出图像的色温。
最后,根据计算得到的色温,对图像的RGB值进行调整,以实现自动白平衡的效果。
具体调整方法为将每个像素的R、G和B值除以对应的调整系数,以使R、G和B值相等,从而减少色偏。
总的来说,AWB色温计算方法通过选择图像中的参考白色点或中性颜色点,并根据这些点的RGB平均值计算色温。
然后,通过调整图像的RGB值,使得图像达到自动白平衡的效果。
这种方法基于灰度世界假设,是实现AWB的一种常用方法。
白平衡亮度

白平衡亮度一、什么是白平衡?白平衡(White Balance)是指在摄影或视频拍摄中,通过调整相机的色温来使图像中的白色物体看起来真实自然的过程。
简单来说,就是让相机能够正确地捕捉到场景中的颜色,并保持图像真实自然。
二、为什么需要白平衡?在不同的光源下,同样的颜色会呈现出不同的表现。
例如,在室内使用白炽灯和荧光灯时,图像中的颜色会有所偏差。
如果没有进行白平衡调整,图像中的颜色就会失真,看起来不自然。
三、如何进行白平衡调整?1. 自动白平衡(AWB)大多数相机都配备了自动白平衡功能(AWB),它可以根据场景中的光线条件自动调整相机设置。
这种方法适用于大多数情况下,但在某些特殊情况下可能不准确。
2. 预设白平衡(Preset White Balance)预设白平衡是指根据场景类型选择相应模式进行设置。
例如,在室内使用荧光灯时选择荧光灯模式,或在室外使用阴天模式等。
这种方法比自动白平衡更准确,但仍然有时会出现失真。
3. 手动白平衡(Manual White Balance)手动白平衡是指使用白色或灰色卡片来进行调整。
将卡片放在场景中,让相机测量它的颜色,并根据测量结果进行设置。
这种方法最准确,但需要一些专业知识和经验。
四、什么是亮度?亮度(Brightness)是指图像中的明暗程度。
在摄影或视频制作中,亮度的调整可以改变图像的整体明暗感觉。
五、如何进行亮度调整?1. 曝光补偿(Exposure Compensation)曝光补偿是指通过调整相机曝光时间或光圈大小来改变图像的亮度。
增加曝光值可以使图像变亮,减少曝光值可以使图像变暗。
2. 后期处理在后期处理中,可以使用软件对图像进行亮度调整。
例如,在Photoshop中使用“曲线”工具或“明暗”工具来改变图像的亮度。
六、白平衡和亮度的关系白平衡和亮度是两个不同的概念,但它们之间有一定的关系。
在进行白平衡调整时,也会影响图像的亮度。
例如,在室内使用荧光灯时,选择荧光灯模式进行白平衡调整后,图像的亮度可能会有所下降。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
自动白平衡(AWB)算法
色温曲线
本文大体讲解了白平衡的算法流程,适用于想了解和学习白平衡原理的筒子们.
一般情况下要实现AWB算法需要专业的图像和算法基础,本文力图通过多图的方式,深入浅出,降低初学者理解上的门槛,让大家都理解到白平衡算法流程.
看到这里还在继续往下瞄的同学,一定知道了色温的概念,并且知道sensor原始图像
中的白色如果不经AWB处理,在高色温(如阴天)下偏蓝,低色温下偏黄,如宾馆里的床头灯(WHY!OTZ) (如下图).
下面这个T恤的图片非常经典,怎么个经典后续再说,不过大体可以看出有偏黄和偏蓝的情况.虽然如此,却已经是AWB矫正以后的效果.
所以,为了眼前的女神白富美在镜头里不变成阿凡达和黄脸婆,这时就需要白平衡来工作了.
流程原理很简单:
1,在各个色温下(2500~7500)拍几张白纸照片,假设拍6张(2500,3500…7500),可以称作色温照.
2,把色温照进行矫正,具体是对R/G/B通道进行轿正,让偏色的白纸照变成白色,并记
录各个通道的矫正参数.
实际上只矫正R和B通道就可以,这样就得到了6组矫正参数(Rgain,Bgain).
3,上面是做前期工作,爱思考的小明发现,只要知道当前场景是什么色温,再轿正一下
就可以了.事实上也就是如此.
所以,AWB算法的核心就是判断图像的色温,是在白天,晚上,室内,室外,是烈日还是夕阳,还是在阳光下的沙滩上.或者是在卧室里”暖味”的床头灯下.
之前拍了6张色温照以及6组矫正参数.可是6够么,当然不够, 插值一下可以得到无数个值,我们把点连成线, 得到了一个神奇的曲线------色温曲线.大概是下面这个样子.
上面提到了三个值(RG,BG,色温),这应该是个三维的.没关系,我们再来一条RG跟色温的曲线,这样只要知道色温,就知道RG,知道RG,就知道BG,知道RG,BG就能轿正了,yes!
至此,我们的前期工作已经全部做完了, 并得到了AWB的色温曲线,下一步只要计算得到当前色温,顺藤摸瓜就能得到当前的矫正参数(Rgain,Bgain),那白平衡的工作就作
完了.(放心,当然没这么简单)
第一部分先到这里,下一部分将讲解AWB算法的核心------计算图像色温.
涉及到的知识点大致有图像分块, 判断白区, 根据色温曲线划分不同光源, 对不同光源加权平均得到实际色温.
色温计算
首先简单说一下流程:
1, 取一帧图像数据,并分成MxN块,假设是25x25,并统计每一块的基本信息(,白色像素的数量及R/G/B通道的分量的均值).
2, 根据第1步中的统计值, 找出图像中所有的白色块,并根据色温曲线判断色温.
3, 至此,我们得出来了图像中所有的可能色温,如果是单一光源的话,可以取色温最多的,当作当前色温.
比如25x25=625 个块中,一共找出了100个有效白色块, 里面又有80个白色块代表了色温4500左右, 那当前色温基本就是4500.
根据4500色温得出的Rgain,Bgain来调整当前图像,就不会差(很多!).
下面我们再详细讲解一下,每一步中需要做的工作:
第1步, 计算每一块的基本信息.
关于白色像素统计,大家知道sensor原始图像是偏色的,怎么统计块中的白色点呢,那只有设置一个颜色范围,只要在范围中,就可以认为是白色像素,范围见下图:
统计白色像素个数的用处是,1,如果块中的白色像素太少,可以抛弃掉. 2,如果白色像素太多,多到每一个像素点都是,那也要抛弃掉,因为很可能在该区域过曝了
接着把统计到的白色像素点R/G/B取均值, 并得到该block 的R/G, B/G值
至此,我们得到了每一块的白点数目及R/G,B/G的值. (请自动对应第1部分中色温曲线).
第二步计算当前色温
这个比较复杂, 大自然绚丽多彩,景色万千. 上一步中统计的”白色点”难免会有失误的地方,比较常见的如黄色皮肤容易被误判为低色温下的白点,淡蓝色的窗帘,容易被误判为高色温下的白点,一张图中既有白色,也有黄色,也有蓝色的时候,是不是感觉情况有点复杂,其它的大家可继续脑补.
这时我们需要一定的策略来正确的判断出到哪个才是真的白.
通常我们会把取到的白色块,计算一下到曲线的距离,再设置相应的权重.话不多说,上个图大家就都明白了.
假设有上面这样一幅图,该图是在没有开AWB的前提下截取的,可以看到左边白色地方略有偏绿,当前色温是室内白炽灯,大概4000~5000k左右.(请忽略颜色不正的问题,我们在讨论白平衡)
下面我们就根据之前的统计信息和测量好的色温曲线进行白平衡矫正.
首先要找出白区,如下图:
上面这个图中的数字标示出了检测到的白色区域,数字相同的表示一个白区,根据统计信息(白点数,rg/bg值)来区分的.可以看到有误判的地方,比如色卡左上第二块的肤色块.还有最右边从上面数第二块也是容易被判断成低色温白块的情况.
针对这种误判的情况,对不同块根据统计信息进行权重设置,以求让误判的区域对最终结果影响小一些.
上面这个图标注了权重,基本是根据统计信息中白点数来确定的.可以看到图中一片白色被标识了高权重.其它情况被标识了低权重. 权重高低一是看块中白色点数量,二是看
rg/bg到色温曲线的距离.
通过上面两个图,大家就可以明显的找到白色区,并根据曲线来矫正,即使不通过曲线
矫正,把白色区的r/g,b/g值向1趋近,让r=g=b,也会得到非常好的白平衡效果.如下图所示:
至此,白平衡的基本流程就讲完了,有图有真相,大家一定看着也方便.
总结一下:第一次做白平衡,感觉理论很简单,不用什么基础也能看懂.实际算法调试时,可谓差之毫厘,失之千里.总是感觉不由自主就走上歪路.中间参考了大量资料,比如网上有许多基于色温/灰度世界/白点检测的白平衡算法,实际个人感觉应该把它们都结合起来,让算法强壮,健康才是我们想要的.
还记得第一章中开始的那两张白色T恤的图么,算了,我再贴一下:
这张图可以理解为在多光源下的白平衡调整.阴影色温比阳光下色温要高一些,如果阳光下是5000k,阴影可能是7000k.有光就有影,它们经常出现在一个镜头里,对着其中一个
色温调,另一边就会偏色.为了整体效果好,要把翘翘板平衡起来,可以加一些策略在里面.。