Matlab常用白平衡算法
灰色世界法 (grey world method )
要计算未知光源的特性必须从图片中提取相关的统计特性。当我
们能够仅使用一个统计特性就获得未知光源特性时,算法就变得非常
简单了。在这种情况下,未知光源必须在整幅图片上都是统一的。均
值于是就成为了此类方法之下最好的统计指标。而灰色世界法正是利
用了均值作为估算未知光源的关键统计量。
从物理意义上说,灰色世界法假设自然界景物对于光线的平均反
射的均值在总体上是个定值,这个定值近似地为“灰色”。在给定图
片的白平衡算法中,灰色世界假设图片中的反射面足够丰富,以至于
可以作为自然界景物的一个缩影。若这幅图片是在经典光源下拍摄的,
其均值就应该等于灰色。若这幅图是在非经典光源下拍摄的,那么均
值就会大于或者小于灰色值。而该均值对于灰色的偏离程度则反映了
未知光源相对于已知光源的特性。
虽然这个方法比较简单,但是仍然可以从一些方面进行调整。一
个方面就是对于灰色的定义形式的选择。包括对于光谱的定义、对于
光谱成分的定义和在经典光源之下的 RGB 的响应。另一个更加重要
的调整方面就是对于灰色的选择。不管如何定义灰色,最佳的灰色之
选必然是自然界实事上出现的灰色。但是这个值是无法获得的(除非
是合成数据),所以对于灰色的选择是不同的灰色世界算法的一个重
要的区别点。
一个方法是假设这个灰色就是实事上的灰色。也就是说反射光谱
是均衡的。给定光源之下的 RGB 响应是纯白色对此光源的响应值的
1
一部分。比方说,可以使用 50%作为反射率(虽然这个灰色值对于
人眼视觉习惯而言可能过于明亮)。
另一种方法,就是根据大量的数据提炼出一个均值,并把它定义
为灰色。这种方法提炼的灰色值可能因为数据库使用的不同而有所不
同。最终提炼的灰色也能仅适用于原始的数据库,而对于数据库未包
括的图片的适用度就会比较差一些。确定下来的灰色表达形式可以用
c
Grey 来表示。下标 i 表示信道,上标 c 为canonical 的首字母,表
i
示经典光源。
在确定灰色的表达形式后只要用 RGB 响应与经典光源下灰色的
比值来归一化图片就可以了。假设 RGB 响应均值为 Aveu ,下标 i
i
表示信道,上标 U 为 Unknown 的首字母,表示未知光源。那么归
一化率的计算式为σ 如下式所示 :
i
c
Grey
i
σ =
i Aveu
i
根据光源转换理论,从未知光源到经典光源下图片表达式的转换
式如下式所定义:
σ
c 1 u
⃑ρ = σ ∙ ⃑ρ
2
[ σ]
3
那么,灰色世界法的计算过程如下图所示:
2