发明内容
有鉴于此,本发明的主要目的在于提供一种视频监控***中的图像亮度修正方法,提高视频序列图像亮度的稳定性,扩展图像的亮度显示范围,消除图像中少数极亮点。
本发明的一种视频监控***中的图像亮度修正方法,包括:
a)统计当前帧图像在不同像素值上的像素点数量分布;
b)根据***的图像质量要求确定允许去除像素点的最小像素值和最大允许被去除的像素点数量;
c)将包含所述最小像素值在内的最小像素值与所述***极限像素值之间的区域划分为至少两个区间;
d)统计落入每个区间的像素点数量;
e)按照像素值从大到小的顺序逐个对落入各区间的像素点数量进行累加,判断当前的累加结果是否大于所述最大允许被去除的像素点数量,如果是,则进入步骤f);否则,判断是否累加已进行到最后一个区间,如果是,则当前帧图像的亮度补偿系数等于所述允许去除像素点的最小像素值,否则返回步骤e)继续进行累加;
f)将当前区间内的一个像素值确定为所述当前帧图像的亮度补偿系数;
g)获取保存的当前帧以前至少一帧图像的亮度补偿系数;
h)计算修正亮度补偿系数为当前帧和以前至少一帧图像的亮度补偿系数与其自身权值乘积的累加和,除以各帧图像权值累加和的商;
i)修正当前帧图像各像素点的像素值为***极限像素值除以步骤d)所得修正亮度补偿系数的商,再乘以该像素点当前帧的像素值。
该方法步骤f)的亮度补偿系数确定方法为:确定所述当前帧图像的亮度补偿系数为当前区间的下限像素值;或确定所述当前帧图像的亮度补偿系数为步骤b)得到的最大允许被去除的像素点数量与前一区间累加结果的差,除以落入当前区间的像素点数量的商,再乘以区间长度后所得的积,与当前区间的下限像素值的和;其中,所述区间长度是指区间中像素值的数量。
该方法步骤c)所述区间为平均划分;每个区间长度为所述***极限像素值与所述最小像素值的差,除以区间个数。
该方法所述划分的每个区间长度为4~16;所述***极限像素值为256。
该方法b)所述最大允许被去除的像素点数量的确定过程包括:根据***的图像质量要求确定***允许去除像素点数量的临界百分比;计算最大允许被去除的像素点数量为所述临界百分比与图像像素点总数的积。
从上面所述可以看出,本发明提供的视频监控***中的图像亮度修正方法有如下优点和特点:
1)本发明针对于视频监控***中的图像亮度稳定和补偿,利用亮度补偿系数,采用多帧预测方法,结合前面多帧的图像特性对当前帧的图像进行修正,使视频序列图像具有较高的亮度稳定性,并消除了由于高亮光源对图像亮度的影响。
2)本发明采用由当前帧前面多帧的亮度补偿系数预测当前帧的修正亮度补偿系数的方式,既保证了视频序列亮度的一致性,又便于硬件的实现。
3)本发明采用了分区统计像素数量的方法,而不是从整个像素值范围内统计直方图特征,并通过线性插值近似计算修正亮度补偿系数,使计算复杂度大大降低。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
本发明的思路参见图1所示,图1为视频监控***通过摄像头拍摄的视频序列中的一部分。其中,每个灰色平行四边形代表一帧图像,Pn为当前帧的图像,n为自然数。本发明为了能够对当前的第Pn帧图像进行亮度修正和补偿,不但考虑第Pn帧的图像特性,还要考虑之间P1到Pn-1各帧的图像特性。
本发明较佳的亮度修正方案描述如下,参见图2所示:
步骤11,统计当前帧图像在各像素值的像素点分布。
步骤12,根据***对图像的质量要求和当前帧图像的像素点分布统计结果,确定当前帧的亮度补偿系数Xn。
当前帧亮度补偿系数的计算原理参见图3所示,图3中纵座标Hist为直方图,代表像素点个数;横座标为像素值。对于一帧视频监控图像,特别是在光线不足的场合,除了部分受较高亮度光源影响的情况以外,往往产生图3a所示的直方图分布。从图3a中可以看出:以X的位置为界,像素值大于X时,其像素点数量相当有限,这种X值以上的像素值范围像素点数量相对较少的情况,将造成图像整体颜色偏暗,或由于外界光线变化导致在图像中出现少数极亮点,并容易造成视频序列的亮度变化剧烈。
本发明针对于这种情况,将利用当前帧及以前各帧的图像特性对当前帧的亮度补偿进行预测。对小于X像素值的像素点数量值进行动态扩展,舍弃大于X像素值部分的原有像素点数量值,参见图3b所示,相当于将原有0至X范围内的直方图曲线拉伸至255。从而增加整体图像亮度,消除图像中的极亮点,并使图像效果更加稳定,提高图像亮度的动态范围。
从图3中可以看出,本发明的亮度补偿系数X相当于对当前帧图像进行修正时,将被去除原有像素点数量值的那部分像素值范围的下限,从X到255像素值范围的原有像素点数量将被替换。因此如何确定X值对本发明图像的修正过程十分重要,参见图4所示,本发明较佳的X值确定过程包括以下步骤。
首先,需要给定一些已知量,包括:
图像尺寸M×N,表示图像的水平方向有M个像素点,垂直方向有N个像素点,图像尺寸反映图像的总像素点数量;
临界百分比α%,表示被去除的像素点数量相对于像素点总量的百分比;
最小允许去除像素值T,可根据***对图像质量要求预先设定,小于T的像素值区域是不允许去除像素点的,即X的值只能大于或等于T。
另外,为了方便对像素点进行计数,将T到256的像素值区域划分为若干个区间,用S表示这些区间的总个数,S的取值可根据硬件设备计算资源的要求设定。
并且由上述的已知量可以得到,如果区间平均划分,则每个区间的长度L为
步骤41,计算临界点阀值Q
可以看出,Q为最大可以被去除的像素点个数。
步骤42,统计落入各区间的像素点个数。
首先,根据实际计算复杂度要求,选取的S+1个等距的像素值256,p1,p2,...,ps(从大到小排列)构成了S个相同长度的像素值半开半闭区间(256,p1],(p1,p2],...,(ps-1,ps]。例如:假设最小允许去除像素值T为192,将像素值为(256,192]的区域划分为16个区间(256,252],(252,248],...,(196,192],每个区间长度为4。S可以根据实际的计算资源情况选择,既要保证满足处理的实时性要求,又要保证一定精度。当s越大,区间长度越小,精度越高,计算复杂度也越高。本发明推荐采用区间长度为4~16中(包括4和16)的某个值为宜。
对落入每个区间的像素点分别计数,从而得到各个区间像素点的数量分别为Q1,Q2,...,Qs。
另外,为了以后的计算方便,这里还给定Q0=0。
步骤43,按像素值从大到小的顺序,逐个计算各区间像素点数量Qi的累加和SUMi,根据下面方法循环计算,从k=1到S:
SUM0=Q0
SUMk=SUMk-1+Qk 1≤k≤S
步骤44~45,将当前的SUMk值与步骤41确定的临界点阀值Q进行比较,判断是否SUMk>Q,如果是,则跳出当前累加和的计算,并记录当前k值,进入步骤48;否则,进入步骤46。
步骤46~47,进一步判断当前是否k=S,如果是,则跳出当前累加和的计算,设定当前帧的亮度补偿系数为所述最小允许去除像素值,即Xn=T;否则,返回步骤43继续执行累加和计算。
步骤48,将当前区间内的一个像素值确定为当前帧的亮度补偿系数Xn。
本步骤采用两种方式:
一种是通过线性差值确定
即亮度补偿参数为当前区间的下限像素值pk-1加上线性差值
另一种方式是为了简化计算,也可以省略线性插值,粗略地采用Xn=pk-1,这样不会引起很大误差。
确定出当前帧的亮度补偿系数后,应将其保存以用于以后调用。
步骤23,获取以前计算的前n-1帧图像的亮度补偿系数X1,X2,...Xn-1。
这里,需要预先设定修正当前帧图像所需的参考帧数量,这里假设为n个,n值可由实际应用要求设定。一般来说,n越大,视频图像的亮度稳定性越好。
步骤24,预测当前帧的修正亮度补偿系数X’。
由于修正亮度补偿系数X’预测过程中,每个参考帧所起的作用不同,因此需要预先为每个参考帧设定权值w1,w2,...,wn,表示各参考帧分别对当前帧预测修正亮度补偿系数影响的程度,权值的设置也由实际应用要求设定。
假设当前帧Pn,其前面n-1个帧按时间顺序分别为P1,P2,...,Pn-1,原始亮度补偿系数分别为X1,X2,...,Xn,则当前帧P的修正亮度补偿系数为:
这里,为了简化计算和便于通过硬件实现,推荐选择
为2n的形式。这种形式下,在硬件实现时,可以通过移位操作实现除法。比如:对于上面的给定值n=3时,有X’为
右移3位,可表示为
步骤25,计算当前帧各像素点新的像素值。
对于当前帧的各像素点的像素值pi,j进行修正得到的新的像素值pi,j′为:
其中1≤i≤M,1≤j≤N。
最后,就可以根据确定的各像素点新的像素值来修正当前帧画面。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。