本发明涉及图像、视频处理技术领域,尤其涉及一种自动白平衡校正方法、装置及计算机存储介质。
背景技术:
人类视觉系统具有与光照条件几乎无关地感知彩色的能力,能够保证观察到的物体颜色不会因为光源的不同而发生变化。然而,数字成像设备在成像时,其感光元器件中所存储的能量不仅仅取决于被摄物体的表面颜色,还受到当时的外界光照情况、感光元器件的物理特性等诸多因素的影响。一般的,在高色温光源下所拍摄的图像,其中的白色物体偏蓝,而在低色温光源下所拍摄的图像,其中的白色物体偏红。对不同色温所引起的的色偏进行校正,从而使白色的物体呈现真正的白色,称之为白平衡处理。现有白平衡算法主要分为两大类,基于一定假设的白平衡算法和基于大量先验知识的白平衡算法。其中,基于一定假设的白平衡算法只利用图像本身的信息,不依赖于先验知识。此类经典的算法有,灰度世界算法,白色块算法等。这类算法原理简单,方便硬件实现,被广泛使用。但是当假设的前提条件不成立时,该类算法容易失效。另一类白平衡算法是基于大量先验知识的:通过学习在已知光源下,图像色度的分布,再根据未知光源下图像的色度分布来推测当前场景的光源。例如颜色相关性算法,色域映射算法,神经网络算法等。这一类算法的效果相对好,宜用于要求较高的场合。但是需要大量样本来构建先验知识,实现过程复杂,资源消耗大。
技术实现要素:
有鉴于此,本发明提供一种自动白平衡校正方法、装置及计算机存储介质,用于解决现有技术的不足。
为达到上述目的,本发明采用如下技术方案:
本发明实施例提供了一种自动白平衡校正方法,包括:
根据光源下白色像素点的色度分布特征,确定白色像素统计区域;
统计待校正图像落入所述白色像素统计区域的像素点,计算白平衡增益;
根据所述白平衡增益对待校正图像进行粗校正;
将校正图像由rgb颜色空间转到yuv空间,并在yuv空间下选定白色像素点;
计算yuv空间下白色像素点的平均色度及色偏误差;
当色偏误差大于预设值,使用精细色偏校正增益对粗校正后的图像进行精细校正。
进一步地,所述“统计待校正图像落入所述白色像素统计区域的像素点,计算白平衡增益”具体包括:
判断待校正图像的每个像素点的rgb分量是否满足公式
l1<r<l2,l1<g<l2,l1<b<l2,其中,l1,l2分别为白色像素的最小阈值与最大阈值;
若像素点满足上述公式,计算该像素点的r/g比值与b/g比值,并判断其是否落在白色像素统计区域;若落在白色像素统计区域,则判断该像素点为白色像素点;
将所有判断为白色像素的像素点的rgb分量累加,分别记为sumr,sumg,sumb,白平衡增益计算表达式如下所示:
进一步地,将校正图像由rgb颜色空间转到yuv空间,在yuv空间下将满足公式|u| |v| θ<y×t的像素点选定为白色像素点;其中,θ为偏置控制参数,t为斜率控制参数。
进一步地,将校正图像由rgb颜色空间转到yuv空间具体采用如下公式
进一步地,所述精细色偏校正增益采用逐级递归获取,某一级的精细色偏校正增益等于其上一级的精细色偏校正增益与该级平均色度对应的修订值之和。
进一步地,所述精细色偏校正增益采用如下公式:
其中,μ是固定调整步长,μ>0;f(x)为自适应调整步长函数,
进一步地,根据所述白平衡增益对待校正图像进行粗校正采用如下公式ros=rgain×ri,bos=bgain×bi,其中,ros,rgain,ri分别为粗校正后像素点的r分量、r分量白平衡增益以及粗校正前像素点的r分量;bos,bgain,bi分别为粗校正后像素点的b分量、b分量白平衡增益以及粗校正前像素点的b分量;使用精细色偏校正增益对粗校正后的图像进行精细校正采用如下公式
进一步地,计算yuv空间下白色像素点的平均色度采用如下公式:
计算色偏误差采用如下公式:
本发明实施例提供了一种自动白平衡校正装置,包括:
区域确定模块,用于根据光源下白色像素点的色度分布特征,确定白色像素统计区域;
统计计算模块,用于统计待校正图像落入所述白色像素统计区域的像素点,计算白平衡增益;
粗校正模块,用于根据所述白平衡增益对待校正图像进行粗校正;
转换选定模块,用于将校正图像由rgb颜色空间转到yuv空间,并在yuv空间下选定白色像素点;
色偏计算模块,用于计算yuv空间下白色像素点的平均色度及色偏误差;
判断模块,用于判定色偏误差是否大于预设值;
精细校正模块,用于判定模块判定为真时,使用精细色偏校正增益对粗校正后的图像进行精细校正。
进一步地,所述统计计算模块具体应用于
判断待校正图像的每个像素点的rgb分量是否满足公式
l1<r<l2,l1<g<l2,l1<b<l2,其中,l1,l2分别为白色像素的最小阈值与最大阈值;
若像素点满足上述公式,计算该像素点的r/g比值与b/g比值,并判断其是否落在白色像素统计区域;若落在白色像素统计区域,则判断该像素点为白色像素点;
将所有判断为白色像素的像素点的rgb分量累加,分别记为sumr,sumg,sumb,白平衡增益计算表达式如下所示:
进一步地,所述转换选定模块将校正图像由rgb颜色空间转到yuv空间,在yuv空间下将满足公式|u| |v| θ<y×t的像素点选定为白色像素点;其中,θ为偏置控制参数,t为斜率控制参数。
进一步地,所述转换选定模块将校正图像由rgb颜色空间转到yuv空间具体采用如下公式
进一步地,所述精细校正模块使用的精细色偏校正增益采用逐级递归获取,某一级的精细色偏校正增益等于其上一级的精细色偏校正增益与该级平均色度对应的修订值之和。
进一步地,所述精细校正模块使用的精细色偏校正增益采用如下公式:
其中,μ是固定调整步长,μ>0;f(x)为自适应调整步长函数,
本发明实施例还提供了一种计算机设备,包括:存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于运行所述计算机程序时,执行以上自动白平衡校正方法的步骤。
本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以上自动白平衡校正方法的步骤。
本发明提供的自动白平衡校正方法所需先验知识容易构建,算法简单易于硬件实现,校正效果好。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种自动白平衡校正方法的流程示意图;
图2为本发明实施例一中色比空间中白色像素统计区域示意图;
图3为本发明另一实施例提供的一种自动白平衡校正方法的流程示意图;
图4为本发明实施例提供的一种自动白平衡校正装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1所示为本发明实施例提供的一种自动白平衡校正方法的流程示意图。包括以下步骤:
s101、根据光源下白色像素点的色度分布特征,确定白色像素统计区域。
选取一组光源,通过学习在已知光源下,图像色度的分布划分出白色像素统计区域。通常,光源的选择可依据图像处理器的应用场景的不同而有不同的选择,尽可能选择常见光源,种类尽可能多。
在不同色温下分别拍摄多帧标准色卡的图像,将相同色温下拍摄的多帧图像求平均,得到一个平均帧,计算平均帧中标准色卡的所有灰阶块的r/g,b/g的平均值,其中r/g表示一个像素点的红色分量值与其绿色分量值的比值,b/g表示一个像素点的蓝色分量值与其绿色分量值的比值,根据计算所得的各组(r/g,b/g)平均值标记色比空间中白色像素统计区域。
其中,如图2所示,黑色三角形表示各组(r/g,b/g)平均值在色比空间中对应的点,白色像素统计区域可分为曲线形区域a和矩形框区域b(b1,b2,……)。其中,多数光源对应的灰阶块的r/g,b/g的平均值会落在曲线形区域a中,而少数光源会偏离曲线形区域,因此单独为这些光源划分区域,并构成矩形框区域b。
s102、统计待校正图像落入所述白色像素统计区域的像素点,计算白平衡增益。
统计待校正图像落入所述白色像素统计区域的像素点,计算白平衡增益具体包括:
判断待校正图像的每个像素点的rgb分量是否满足公式(1)
l1<r<l2,l1<g<l2,l1<b<l2(1)
其中,l1,l2分别为白色像素的最小阈值与最大阈值;若像素点满足上述公式(1),计算该像素点的r/g比值与b/g比值,并判断其是否落在白色像素统计区域(a区或者b区);若落在白色像素统计区域,则判断该像素点为白色像素点;将所有判断为白色像素的像素点的rgb分量累加,分别记为sumr,sumg,sumb,白平衡增益计算表达式如公式(2)所示:
其中,rgain为r分量白平衡增益,bgain为b分量白平衡增益。
s103、根据所述白平衡增益对待校正图像进行粗校正。
白平衡增益对待校正图像进行粗校正采用如下公式(3)
ros=rgain×ri,bos=bgain×bi(3)
其中,ros,rgain,ri分别为粗校正后像素点的r分量、r分量白平衡增益以及粗校正前像素点的r分量;bos,bgain,bi分别为粗校正后像素点的b分量、b分量白平衡增益以及粗校正前像素点的b分量。
在s101中确定的白色像素统计区域能够选择出不同色温下的白色像素,但同时一些非白色像素也有可能落在白色像素统计区域被判断为白色像素,参与到白平衡增益的计算中,当非白色点占的比例较大时,且明显偏某种颜色,此时计算出的白平衡校正增益使校正后的图像还存在一定的偏色。因此,经过粗校正后的图像可能还存在轻微的偏色,需要做进一步的精细校正。
s104、将校正图像由rgb颜色空间转到yuv空间,并在yuv空间下选定白色像素点。
具体可以根据公式(4),将粗校正图像由rgb颜色空间转到yuv颜色空间。
没有色偏的图像中,白色像素点满足y=r=g=b,u=v=0。在不同光源下拍摄的图像,图像偏色的程度是不可知的,可能严重偏色,可能轻微偏色。但图像经过粗校正后,图像偏色的程度校正到较小的范围内,因此,可以更准确的选择出白色像素。在yuv空间下将满足公式(5)的像素点选定为白色像素点。
|u| |v| θ<y×t(5);
其中,||表示绝对值,θ为偏置控制参数,t为斜率控制参数。θ、t的参数可根据用户需要事先设定好。
s105、计算yuv空间下白色像素点的平均色度及色偏误差。
如公式(6)所示,计算所有被标记为白色像素点的平均色度。
其中,
如公式(7)所示,计算色偏误差值。
当色偏误差值越大时,表明当前图像越偏色。
s106、当色偏误差大于预设值,使用精细色偏校正增益对粗校正后的图像进行精细校正。
如图3所示,当色偏误差小于等于预设值ε,即e≤ε,ε为一个较小的值,则该图像不需要再进行精细校正,可以直接输出图像s107。当色偏误差大于预设值ε,即e>ε,ε为一个较小的值,则该图像需要再进行精细校正,精细校正完成后,经过rgb颜色空间转到yuv空间后选定白色像素点,并计算白色像素点平均色度与色偏误差,直至当色偏误差小于等于预设值ε。具体步骤如下:
s1061、判定色偏误差是否大于预设值。
s1062、判定结果为真时,利用预设公式计算精细色偏校正增益。
精细色偏校正增益采用逐级递归获取,某一级的精细色偏校正增益等于其上一级的精细色偏校正增益与该级平均色度对应的修订值之和。采用逐级递归可以保证精细色偏校正增益的确定更加精确,同时计算方便。
精细色偏校正增益采用公式(8):
其中,μ是固定调整步长,μ>0;f(x)为自适应调整步长函数,
s1063、使用精细色偏校正增益对图像进行精细校正。
使用精细色偏校正增益对校正后的图像进行精细校正采用公式(9)
rof=rfgain×ros,bof=bfgain×bos(9)
其中,rof,rfgain,ros分别为精细色偏校正后像素点的r分量、r分量精细色偏校正增益以及精细色偏校正前像素点的r分量;bof,bfgain,bos分别为精细色偏校正后像素点的b分量、b分量精细色偏校正增益以及精细色偏校正前像素点的b分量。
每经过一次精细校正之后,对校正后的数据重新回到s104反复做精细校正处理,直至当色偏误差小于等于预设值ε。
图4所示为本发明实施例提供的一种自动白平衡校正装置的结构示意图,包括:
区域确定模块,用于根据光源下白色像素点的色度分布特征,确定白色像素统计区域。
统计计算模块,用于统计待校正图像落入所述白色像素统计区域的像素点,计算白平衡增益。
粗校正模块,用于根据所述白平衡增益对待校正图像进行粗校正。
转换选定模块,用于将校正图像由rgb颜色空间转到yuv空间,并在yuv空间下选定白色像素点。
色偏计算模块,用于计算yuv空间下白色像素点的平均色度及色偏误差。
判断模块,用于判定色偏误差是否大于预设值。
精细校正模块,用于判定模块判定为真时,使用精细色偏校正增益对粗校正后的图像进行精细校正。
统计计算模块具体应用于
判断待校正图像的每个像素点的rgb分量是否满足公式
l1<r<l2,l1<g<l2,l1<b<l2,其中,l1,l2分别为白色像素的最小阈值与最大阈值。
若像素点满足上述公式,计算该像素点的r/g比值与b/g比值,并判断其是否落在白色像素统计区域;若落在白色像素统计区域,则判断该像素点为白色像素点。
将所有判断为白色像素的像素点的rgb分量累加,分别记为sumr,sumg,sumb,白平衡增益计算表达式如下所示:
转换选定模块将校正图像由rgb颜色空间转到yuv空间具体可采用如下公式
在yuv空间下将满足公式|u| |v| θ<y×t的像素点选定为白色像素点;其中,θ为偏置控制参数,t为斜率控制参数。
精细校正模块使用的精细色偏校正增益采用如下公式:
其中,μ是固定调整步长,μ>0;f(x)为自适应调整步长函数,
需要说明的是:上述实施例提供的自动白平衡校正装置在进行校正时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的自动白平衡校正装置与自动白平衡校正方法实施例属于同一构思,其具体实现过程详见方法实施例,其有益效果同方法实施例,这里不再赘述。
本发明实施例还提供了一种计算机设备,包括:存储器和处理器。其中,存储器用于存储计算机程序。处理器用于运行计算机程序时,执行本发明前述自动白平衡校正方法的步骤。
本发明实施例还提供了一种计算机存储介质,是计算机可读存储介质,其上存储有计算机程序,上述计算机程序可由计算机设备的处理器执行,以完成前述自动白平衡校正方法的步骤。计算机可读存储介质可以是磁性随机存取存储器(fram,ferromagneticrandomaccessmemory)、只读存储器(rom,readonlymemory)、可编程只读存储器(prom,programmableread-onlymemory)、可擦除可编程只读存储器(eprom,erasableprogrammableread-onlymemory)、电可擦除可编程只读存储器(eeprom,electricallyerasableprogrammableread-onlymemory)、快闪存储器(flashmemory)、磁表面存储器、光盘、或只读光盘(cd-rom,compactdiscread-onlymemory)等存储器。
在本发明所提供的几个实施例中,应该理解到,所揭露的方法和智能设备,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
1.一种自动白平衡校正方法,其特征在于,包括:
根据光源下白色像素点的色度分布特征,确定白色像素统计区域;
统计待校正图像落入所述白色像素统计区域的像素点,计算白平衡增益;
根据所述白平衡增益对待校正图像进行粗校正;
将校正图像由rgb颜色空间转到yuv空间,并在yuv空间下选定白色像素点;
计算yuv空间下白色像素点的平均色度及色偏误差;
当色偏误差大于预设值,使用精细色偏校正增益对粗校正后的图像进行精细校正。
2.根据权利要求1所述的方法,其特征在于,所述“统计待校正图像落入所述白色像素统计区域的像素点,计算白平衡增益”具体包括:
判断待校正图像的每个像素点的rgb分量是否满足公式
l1<r<l2,l1<g<l2,l1<b<l2,其中,l1,l2分别为白色像素的最小阈值与最大阈值;
若像素点满足上述公式,计算该像素点的r/g比值与b/g比值,并判断其是否落在白色像素统计区域;若落在白色像素统计区域,则判断该像素点为白色像素点;
将所有判断为白色像素的像素点的rgb分量累加,分别记为sumr,sumg,sumb,白平衡增益计算表达式如下所示:
3.根据权利要求1所述的方法,其特征在于,将校正图像由rgb颜色空间转到yuv空间,在yuv空间下将满足公式|u| |v| θ<y×t的像素点选定为白色像素点;其中,θ为偏置控制参数,t为斜率控制参数。
4.根据权利要求1所述的方法,其特征在于,所述精细色偏校正增益采用逐级递归获取,某一级的精细色偏校正增益等于其上一级的精细色偏校正增益与该级平均色度对应的修订值之和。
5.根据权利要求4所述的方法,其特征在于,所述精细色偏校正增益采用如下公式:
其中,μ是固定调整步长,μ>0;f(x)为自适应调整步长函数,
6.根据权利要求1所述的方法,其特征在于,根据所述白平衡增益对待校正图像进行粗校正采用如下公式
7.一种自动白平衡校正装置,其特征在于,包括:
区域确定模块,用于根据光源下白色像素点的色度分布特征,确定白色像素统计区域;
统计计算模块,用于统计待校正图像落入所述白色像素统计区域的像素点,计算白平衡增益;
粗校正模块,用于根据所述白平衡增益对待校正图像进行粗校正;
转换选定模块,用于将校正图像由rgb颜色空间转到yuv空间,并在yuv空间下选定白色像素点;
色偏计算模块,用于计算yuv空间下白色像素点的平均色度及色偏误差;
判断模块,用于判定色偏误差是否大于预设值;
精细校正模块,用于判定模块判定为真时,使用精细色偏校正增益对粗校正后的图像进行精细校正。
8.根据权利要求7所述的装置,其特征在于,所述统计计算模块具体应用于
判断待校正图像的每个像素点的rgb分量是否满足公式
l1<r<l2,l1<g<l2,l1<b<l2,其中,l1,l2分别为白色像素的最小阈值与最大阈值;
若像素点满足上述公式,计算该像素点的r/g比值与b/g比值,并判断其是否落在白色像素统计区域;若落在白色像素统计区域,则判断该像素点为白色像素点;
将所有判断为白色像素的像素点的rgb分量累加,分别记为sumr,sumg,sumb,白平衡增益计算表达式如下所示:
9.根据权利要求7所述的装置,其特征在于,所述转换选定模块将校正图像由rgb颜色空间转到yuv空间,在yuv空间下将满足公式|u| |v| θ<y×t的像素点选定为白色像素点;其中,θ为偏置控制参数,t为斜率控制参数。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一项所述方法的步骤。
技术总结