一种自适应提升视频图像对比度的算法
2013-01-31袁野
袁 野
(上海对外贸易学院商务信息学院,上海201620)
在数字电视领域里,数字电视后处理芯片中都具有画质提升的功能,其中对比度提升是非常重要的功能。
对比度提升的目标是通过合理的映射使视频图像的动态表现范围得到一定程度的拉伸,更多地表现图像的层次细节。大部分的视频图像像素亮度集合只占整个亮度区域[0,255]的一部分。适当扩大其过渡幅度,增强图像局部整个区域的亮度对比,使人眼分辨更多的图像信号细节。
图像对比度提升最常用的方法是直方图均衡,把原图像的直方图通过变换函数,修正为分布比较均匀的直方图,从而获得一个具有丰富灰度级别且动态范围大的增强图像。但是传统的直方图均衡却存在矫枉过正的缺点,主要表现在以下几个方面:1)不论原来的亮度区域是否只占整个灰度区域的一小部分,经拉伸后,都达到整个256个级别的灰度域。由于背景点通常占据整个图像点的高百分比,在均衡过程中往往灰度值级扩展幅度过大,容易引起背景噪声。2)一些本来平均亮度过高或过低的图像,均衡后的平均亮度得不到保护,导致增强后的图像不论黑夜还是明亮场景,最终增强后的图像的平均亮度都趋向于中间灰度,与原图相差太大,无法直接应用到视频后处理的算法中。
为此很多学者提出了直方图均衡的改善方法[1-10],文献[2]提出了保持亮度的双直方图均衡(BBHE),以亮度均值将原始图像分成2个子图,并分别进行直方图均衡,保护平均亮度,但仍然无法解决背景噪声变大的现象。文献[5]提出一种基于直方图分段非线性插值的对比度增强处理技术。通过将整幅图像分为背景段、过渡段和目标段,依据各部分的特点分别对不同的灰度段采用直方图非线性拉伸,可以抑制背景噪声,却因分段不够平滑不能应用到需要平滑变换函数的视频对比度提升中。
鉴于以上不足,提出一种自适应对比度提升算法,在保持原有图像平均亮度不大幅改变的基础上,自适应地拉伸图像动态区域,得到变化平滑的灰度变换函数,减小了背景灰度点的拉伸幅度,既丰富了图像层次,又保证了背景噪声不被放大,同时达到提高对比度的目的。
1 传统直方图均衡算法
直方图均衡化处理是拉伸原始图像的灰度直方图,使之由集中的某灰度区间转换为全部灰度范围内均匀分布。其直方图增强过程通过增强函数T完成,具体步骤如下:
步骤1:求取原始图像的累计直方图。
式中:n(i)为图像中某一灰度值i对应的像素个数,它反映了一幅图像的灰度分布情况;N为像素总个数;P(r)为第r灰度级的累积直方图。
步骤2:求取直方图均衡的灰度变换函数。
式中:r表示原图像灰度级;s表示经直方图均衡化后的图像灰度级;L代表最大灰度级,这里是256。变换函数s=T(r)应保证增强后的图像的灰度级单调性不变,并使映射变换后的像素灰度值在允许的范围内。按照变换函数对原图像各点像素进行灰度转换,即可完成对原始图像的直方图均衡化。
2 算法设计思想
层次细节的改善过程要以不过度影响图像的基本视觉特征为目的,如图像的平均亮度、色彩的分布结构等要在视觉可以接受的前提下增强;同时,背景点的拉伸不能太大,否则会产生很多的噪声。基于以上考虑,本文对直方图均衡进行了改进。本算法的具体步骤如下。
2.1 统计图像的相关信息
考虑到较大的部分通常是背景,而这部分如果都参与直方图均衡,将对增加背景噪声起到很大作用。因此定义为一种新的限制直方图,当某一灰度的像素点个数低于某个给定数值K时,保留原值,如果大于这个给定数值K,就记录K为该灰度的像素总数,最后将多余的那些像素点平均分配给动态范围内的所有灰度,得到新的改进直方图。其中K为某范围内的像素数,可选像素总数的5%,控制每个亮度单元的最大幅度。这样得到的改进直方图比较真实地反映了灰度的分布情况,但是不会把像素点最多的灰度(通常是背景)拉伸得太大。
步骤1:统计改进的直方图。
式中:n1(i)里存放的是受限的某一灰度值i的像素个数,如果n(i)>K,则n1(i)=K;如果n(i)<K,则n1(i)=n(i),n(i)为图像中某一灰度值i对应的的像素个数;sum1为K以内的像素的总亮度和;sum'为那些没有记录到K以内的剩余像素的总亮度和;n2(i)为存放改进后的直方图。式(3)的含义为把剩下的像素平均分配到各灰度级。
步骤2:计算改进的累积直方图。
2.2 计算均衡系数
步骤3(上接2.1节步骤2):按改进直方图进行均衡后的平均亮度为
步骤4:计算平均亮度的变化程度。
2.3 计算灰度变换函数
式(8)表明,为使变换与原视频图像接近,应用直方图改进均衡方法和原灰度按均衡系数加权获得对应的变换曲线。该曲线也称GAMMA曲线,通过映射可以得到每个像素新的灰度级。
3 算法的仿真实验结果
采用Verilog语言设计本文算法,应用型号为Virtex-5的FPGA视频处理平台进行仿真验证,仿真结果见图1。图1a为原图,是一幅大背景的图像,分辨率为720×480,分别应用直方图均衡算法和本文算法对它进行了算法仿真。结果如图1b、图1c所示,直方图均衡算法虽然较大地提高图像的对比度,但是图像失真、背景拉伸过大、有的地方变亮、有的地方变暗。在播放视频时背景噪声很大,是无法接受的。而本文提出的算法,在提高对比度的同时,保持着原图没有太大的变动,因为对直方图进行改进,使得背景部分的拉伸不那么明显,从而降低了背景噪声。
图2a、图2b给出了图1a的原始直方图和改进直方图,图2c给出了两种方法获得的灰度变换曲线。可以看出,直方图均衡算法的灰度变换曲线变化太大,在背景处对比度拉伸过大,引起背景的黑白不均,而本文算法则变化平滑,幅度比较适度,对前景部分起到了对比度拉伸的效果。
图3a为一幅暗场图像,分别应用两种算法进行算法仿真。从图3b、图3c可以看出,直方图均衡算法使暗场变得过亮,不符合实际情况。而本文提出的算法对暗场图像有一定的亮度提升,适度提高了对比度。
图3 暗场图像的仿真结果
图4 a、图4b给出了图3a的原始直方图和改进直方图,图4c给出了两种方法获得的灰度变换曲线。可以看出,直方图均衡算法的灰度变换曲线变化太大,把暗场的[0,100]的灰度拉伸到了[0,255]范围内,过增强比较严重,而本文算法则幅度比较适度。并且由于视频序列的连续性,该方法得到的灰度变换曲线在帧间是渐进改变的,较之传统的应用灰度变换曲线分段法,帧过渡会更加平滑。实验结果说明应用本文提出的改进的直方图均衡算法,可以有效提高视频图象对比度,具有很好的实验效果。
4 结束语
图4 两种方法的暗场图像的直方图和变换曲线比较
本文提出一种适合于视频图像的自适应对比度提升技术,在直方图均衡方法的基础上进行了改进。首先统计改进的直方图,得到改进的累积直方图;然后根据平均亮度计算均衡系数,最后得到变换函数曲线。仿真结果表明,应用本文方法处理后的视频图像,较之传统的直方图均衡方法更接近原始亮度,能够自适应地拉伸图像动态区域,帧之间灰度变换曲线过渡平滑,在没有增强背景噪声的情况下提升了图像对比度。
[1]GONZALEZ R C,WOODS R E.Digital image processing[M].2nd ed.Englewood Cliffs,NJ:Prentice Hall,2002.
[2]KIM Y T.Contrast enhancement using brightness preserving Bi-histogram equalization[J].IEEE Trans.Consumer Electronics,1997,43(1):1-8.
[3]扈佃海,吕绪良,文刘强.一种改进的直方图均衡化图像增强方法[J].光电技术应用,2012,27(3):65-68.
[4]李开端,李树军.基于直方图统计学的图像增强算法研究[J].科学技术与工程,2011,11(23):5572-5575.
[5]武治国,王延杰.一种基于直方图非线性变换的图像对比度增强方法[J].光子学报,2010,39(4):755-758.
[6]乔闹生.一种改进的直方图均衡化[J].光学技术,2008,34(S1):141-142.
[7]何昕,李晓华,周激流.一种自适应多阈值直方图均衡方法[J].计算机工程,2011,37(17):206-207.
[8]武英.基于双直方图均衡的自适应图像增强算法[J].计算机工程,2011,37(17):244-245.
[9]涂继辉,余厚全,李长文,等.基于超声测井图像的动态直方图均衡算法研究[J].电视技术,2011,35(19):113-115.
[10]王莉,唐宏,胡伟.基于自适应非线性滤波的红外图像增强算法[J].电视技术,2008,32(S1):143-145.