发明内容
鉴于此,有必要针对输出图像过度不自然、计算量大的问题,提供一种输出图像过度自然、计算简单,便于集成电路硬件实现的图像宽动态范围压缩方法及系统。
为达到发明目的,提供一种图像宽动态范围压缩方法,所述方法包括:
计算图像像素的原始亮度值的局域均值;
根据所述局域均值计算得到所述图像像素的转换函数;
根据所述转换函数对所述图像像素暗区的原始亮度值进行增强,对所述图像像素亮区的原始亮度值进行衰减,得到将所述原始亮度值进行压缩后的第一亮度值;
根据所述局域均值和所述转换函数对所述图像像素的所述原始亮度值进行对比度增强,得到将所述原始亮度值进行对比度增强后的第二亮度值;
将所述第一亮度值和所述第二亮度值进行合成,得到将所述第一亮度值进行对比度增强后的第三亮度值;
将所述第三亮度值和所述图像像素的所述原始亮度值进行合成,得到自然过度的第四亮度值。
在其中一个实施例中,所述根据所述局域均值计算得到所述图像像素的转换函数的步骤包括:
根据所述局域均值计算得到所述转换函数的转换参数;
根据所述转换参数获得所述转换函数。
在其中一个实施例中,所述根据所述局域均值和所述转换函数对所述图像像素的原始亮度值进行对比度增强,得到将所述亮度值进行对比度增强后的第二亮度值的步骤包括:
采用所述转换函数对所述局域均值进行转换,得到转换后的转换局域均值;
计算所述转换局域均值与所述局域均值的比值,得到对比度系数;
采用所述对比度系数对所述原始亮度值进行计算,得到所述第二亮度值。
在其中一个实施例中,所述将所述第一亮度值和所述第二亮度值进行组合,得到将所述第一亮度值进行对比度增强后的第三亮度值的步骤包括:
获取对比度强度参数,其中,所述对比度强度参数为大于等于0小于等于1的值,对比度强度参数的值越大,对比度增强效果越强。对比度强度参数的值越小,对比度增强效果越小;
采用所述对比度强度参数对所述第一亮度值和所述第二亮度值进行合成,得到第三亮度值。
在其中一个实施例中,所述将所述第三亮度值和所述图像像素的所述原始亮度值进行合成,得到自然过度的第四亮度值的步骤包括:
获取转换强度参数,其中,所述转换强度参数越大,转换强度越大,所述转换强度参数越小,转换强度越小;
采用所述转换强度参数对所述第三亮度值和所述原始亮度值进行合成,得到所述第四亮度值,并输出所述第四亮度值。
本发明还提供一种图像宽动态范围压缩装置,所述装置包括:
计算模块,用于计算图像像素的原始亮度值的局域均值;
转换函数模块,用于根据所述局域均值计算得到所述图像像素的转换函数;
压缩模块,用于根据所述转换函数对所述图像像素暗区的原始亮度值进行增强,对所述图像像素亮区的原始亮度值进行衰减,得到将所述原始亮度值进行压缩后的第一亮度值;
对比度增强模块,用于根据所述局域均值和所述转换函数对所述图像像素的原始亮度值进行对比度增强,得到将所述原始亮度值进行对比度增强后的第二亮度值;
第一合成模块,用于将所述第一亮度值和所述第二亮度值进行合成,得到将所述第一亮度值进行对比度增强后的第三亮度值;
第二合成模块,用于将所述第三亮度值和所述图像像素的所述原始亮度值进行合成,得到自然过度的第四亮度值。
在其中一个实施例中,所述转换函数模块包括:
计算单元,用于根据所述局域均值计算得到所述转换函数的转换参数;
转换函数单元,用于根据所述转换参数获得所述转换函数。
在其中一个实施例中,所述对比度增强模块包括:
转换单元,用于采用所述转换函数对所述局域均值进行转换,得到转换后的转换局域均值;
对比度系数单元,用于计算所述转换局域均值与所述局域均值的比值,得到对比度系数;
对比度增强单元,用于采用所述对比度系数对所述原始亮度值进行对比度增强,得到所述第二亮度值。
在其中一个实施例中,所述第一合成模块包括:
第一获取单元,用于获取对比度强度参数,其中,所述对比度强度参数为大于等于0小于等于1的值,对比度强度参数的值越大,对比度增强效果越强。对比度强度参数的值越小,对比度增强效果越小;
第一合成单元,用于采用所述对比度强度参数对所述第一亮度值和所述第二亮度值进行合成,得到第三亮度值。
在其中一个实施例中,所述第二合成模块包括:
第二获取单元,用于获取转换强度参数,其中,所述转换强度参数越大,转换强度越大,所述转换强度参数越小,转换强度越小;
第二合成单元,用于采用所述转换强度参数对所述第三亮度值和所述原始亮度值进行合成,得到所述第四亮度值,并输出所述第四亮度值。
本发明的有益效果包括:
上述图像宽动态范围压缩方法及装置,通过转换函数将图像像素暗区的亮度值进行增强,将图像像素亮区的亮度值进行衰减,图像像素的高动态范围转换为低动态范围,实现图像像素的宽动态范围压缩。同时,通过对原始亮度值进行对比度增强,并将对比度增强后的亮度值和压缩后的亮度值合成的方式,来较好的保持图像像素的对比度,进而达到保持图像清晰鲜明的效果。并且,通过将压缩后和对比度增强后的亮度值与原始亮度值合成的方式达到图像像素过度自然的效果,克服传统对图像像素处理时人工痕迹较明显的缺陷。并且,采用上述方式输出的亮度值可以很好的显示器上显示或者在打印机上打印,计算过程简单,便于集成电路实现。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明图像宽动态范围压缩方法及装置进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
在一个实施例中,如图1所示,提供了一种图像宽动态范围压缩方法,该方法包括以下步骤:
S100,计算图像像素的的原始亮度值的局域均值。
S200,根据局域均值计算得到图像像素的转换函数。
S300,根据转换函数对图像像素暗区的原始亮度值进行增强,对所述图像像素亮区的原始亮度值进行衰减,得到将所述原始亮度值进行压缩后的第一亮度值。
S400,根据局域均值和转换函数对图像像素的原始亮度值进行对比度增强,得到将原始亮度值进行对比度增强后的第二亮度值。
S500,将第一亮度值和所述第二亮度值进行合成,得到将第一亮度值进行对比度增强后的第三亮度值。
S600,将第三亮度值和图像像素的原始亮度值进行合成,得到自然过度的第四亮度值。
本实施例中,采用低通滤波单元(如:低通滤波器,LPF,Low Pass Filter)对图像像素的原始亮度值进行均值滤波,计算出图像像素局域范围内的局域均值。在对图像像素进行均值滤波时,一般采用较大的滤波器窗口(滤波器窗口越大,截止频率越低,滤波效果越平滑)进行均值滤波,这样可以保证图像相邻像素之间局域均值的平滑过渡,即在图像像素的局域范围内,相邻像素之间的均值几乎是一致的,因此,图像像素的局域均值可表示为:Ilpf=LPF(I),其中,I=I(x,y),表示图像像素局域范围内的待处理的原始亮度值。需要说明的是,低通滤波单元的滤波窗口大小与图像的尺寸相关,图像尺寸越大,滤波窗口也越大。传统的低通滤波单元的窗口需要9×9以上,计算比较耗时,为了减少耗时,加速滤过过程,可以先将图像缩小,对缩小后的图像进行小窗口的均值滤波,然后再将滤波后的图像进行差值放大,这样不仅达到了均值滤波的效果,且加速了整个滤波过程。
得到图像像素的局域均值之后,根据局域均值计算得到图像像素的转换函数T,并使用转换函数对原始亮度值进行转化,转换函数对图像像素的原始亮度值进行转换时,对图像像素的亮度值较小(暗区)的亮度值进行增强,对图像像素的亮度值较大(亮区)的亮度值进行衰减,进而将图像像素的高动态范围转换为低动态范围,得到宽动态范围压缩后的第一亮度值,即It(x,y)=T(I(x,y)),其中,It(x,y)为第一亮度值。局域均值越大,表示在该局域范围内的像素的亮度值较大,局域均值越小,表示该局域范围内的像素的亮度值越小。具体的,图像像素的亮区指的是图像像素的局域均值大于预设亮度值的区域,当局域均值大于预设亮度值时,得到的转换函数对图像像素的亮度值进行衰减,图像像素的暗区指的是图像像素的局域均值小于等于预设亮度值的区域,当局域均值小于等于预设亮度值时,得到的转换函数对图像像素的亮度值进行增强。
步骤S400是对图像像素的原始亮度值进行对比度增强的步骤,步骤S400具体包括:
S410,采用转换函数对局域均值进行转换,得到转换后的转换局域均值T(Ilpf)。
S420,计算转换局域均值T(Ilpf)与局域均值Ilpf的比值,得到对比度系数
S430,采用对比度系数对原始亮度值进行计算,得到第二亮度值Ic(x,y)。
下面通过推理的方式解释采用上述方式增强图像像素对比度的原理。
由于是采用低通滤波单元计算的局域均值,因此需每次对图像像素的局域区域进行对比度增强,然后达到对整个图像像素的对比度增强,局部对比度的定义公式如下:
其中,Iavg为图像像素点附近的局域的均值。
为了保持图像像素变换前后对比度相等,则需满足以下等式:
其中,Ic(x,y)表示转换函数T转换后的像素值,Icavg表示转换函数转换后的像素的局域均值,由于在像素(x,y)的邻域的一定范围内Iavg保持一致,可以视为恒定,因此在邻域的一定范围内T(Iavg)也可以视为是恒定的,可以将T(Iavg)作为T函数转换后局部领域的期望均值,即Icavg=T(Iavg),将上述等式进行替换,可以得到:
Iavg为局域均值,可通过低通滤波单元计算得到,因此Iavg与Ilpf为同一值,则上述等式可转换为:
其中,Ic(x,y)为对比度增强后图像像素的亮度值,即步骤S400中的第二亮度值。表示对比度系数。
在得到第一亮度值和第二亮度值后,将第一亮度值和第二亮度值进行合成,得到将第一亮度值进行对比度增强后的第三亮度值,具体步骤为:
S510,获取对比度强度参数A。
S520,采用对比度强度参数A对第一亮度值和第二亮度值进行合成,得到第三亮度值。
其中,对比度强度参数A为大于等于0小于等于1的值,对比度强度参数的值越大,对第一亮度值的对比度增强效果越强。对比度强度参数的值越小,对第一亮度值的对比度增强效果越小。
由于直接采用转换函数T转换后的第一亮度值,是将原始图像像素中的暗区进行增强,对图像像素中的亮区进行衰减,从而达到对图像像素压缩的效果,但这样势必会降低图像像素的对比度,而对比度降低会造成图像模糊不清,色彩也会变得暗淡,为了使图像像素保持清晰,色彩保持鲜明,需要对转换后的图像像素进行对比度增强,采用步骤S400可以有效的增强图像像素的对比度。而采用对比度强度参数A将步骤S300中转换后的图像像素的亮度值和步骤S400中对比度增强后的亮度值进行合成,既能达到图像像素压缩的效果,又能保持相对的图像对比度,保持图像清晰鲜明。其中,可根据需要调节对比度强度参数A的值,若想要对比度增强效果好些,可将对比度强度参数A的值设置的大些,若想要图像像素的压缩效果好些,可将对比度强度参数A的值设置的小些。
其中,采用对比度强度参数A将第一亮度值和第二亮度值进行合成,得到第三亮度值采用的公式如下:Io(x,y)=Ic(x,y)*A+It(x,y)*(1-A)。
步骤S500输出的处理后的第三亮度值人工处理痕迹较明显,为了克服人工痕迹明显,图像过度不自然的问题,将第三亮度值与图像像素的原始亮度值进行合成,可以有效的解决的人工痕迹明显、图像过度不自然的问题。
结合上述说明,可以得出本实施例中的图像宽动态范围压缩方法通过对图像像素暗区的亮度值进行增强,对图像像素亮区的亮度值进行衰减,达到将高动态范围的图像像素转换为低动态范围的图像像素的效果,实现图像像素的宽动态范围压缩,同时,通过增强图像像素对比度的方式达到保持图像清晰鲜明的效果,通过将压缩和对比度增强后的亮度值与原始亮度值合成的方式达到图像像素过度自然的效果,克服传统对图像像素处理时人工痕迹较明显的缺陷。并且,采用上述方式输出的亮度值可以很好的显示器上显示或者在打印机上打印,计算过程简单,便于集成电路实现。
优选的,在一个实施例中,步骤S200包括:
S210,根据局域均值计算得到转换函数的转换参数b。
S220,根据转换参数获得转换函数T。
转换参数b是与局域均值Ilpf相关联的,其可以通过以下计算公式获得:
其中,c为图像像素的亮度增强或衰减的分界点,即预设亮度值,可通过预先实验获得;Ka为低亮度区域(暗区)的增强参数,其值可以表示低亮度区域的增强的程度,Ka的取值范围为[0,0.45],0表示暗区不增强,Ka越大暗区增强的强度越大;Kb为高亮度区域(亮区)的衰减系数,其值可以表示高亮度区域的衰减程度,Kb的取值范围为[0,0.45],0表示亮区不衰减,Kb越大亮区衰减的强度越大。图3为一个实施例中的转换参数b的曲线示意图。
得到转换参数b后,可得到转换函数T。转换函数可表示为:
转换函数对应的曲线示意图如图2所示,当b<0.5时,转换函数T对图像像素的原始亮度值进行衰减(图2所示的下面5条曲线,横轴表示转换前的原始亮度值,纵轴表示转换后的第一亮度值),b值越小,当b≥0.5时,转换函数T对图像像素的原始亮度值进行增强(图2所示的上面6条曲线,横轴表示转换前的原始亮度值,纵轴表示转换后的第一亮度值)。图2中示出了转换参数b为0.05,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,0.95(图中曲线由下至上),共11条曲线示意图,每条曲线有65个抽样点,11条曲线共715个点,组成转换函数查找表。
优选的,步骤S300包括:S310,根据转换函数对输入的图像像素的原始亮度值进行查表,确定原始亮度值的区域位置。S320,根据原始亮度值所在的区域位置获取与原始亮度值相邻的两个采样亮度值,并采用线性插值的方式计算得到第一亮度值。
对于任何b、I参数对应的转换函数,可以由相邻的点采用双线性线性插值来计算。如果查找表时直接查找到与原始亮度值相同的采样亮度值,则该采样亮度值对应的转换亮度值即为第一亮度值。采用查找表的方式简便快捷,易于实施,采用双线性线性插值的计算方式提高转换精度。
在一个实施例中,步骤S600包括:
S610,获取转换强度参数B。其中,所述转换强度参数越大,转换强度越大,所述转换强度参数越小,转换强度越小。
S620,采用转换强度参数B对第三亮度值和原始亮度值进行合成,得到第四亮度值,并输出第四亮度值。
其中,转换强度参数B可以为常数,也可以为函数曲线,优选的,转换强度参数为单调递减函数。即转换强度参数B的斜率为负。转换强度参数B在局域均值Ilpf越小时,对应的B值越大,在局域均值Ilpf越大时,对应的B值越小,这样最终输出图像的结果是对图像暗区增强效果明显,对图像亮区衰减效果作用小,可以减小输出图像的失真和引入噪声的程度。在转换强度和最终效果之间做一个折中。
优选的,转换强度参数B可以采用Sigmoid(S型函数)曲线变换而来,Sigmoid曲线的一个实施例如图4所示,Sigmoid曲线函数表示如下:
采用Sigmoid函数的转换强度参数B表示为:B(Ilpf)=Sigmiod(6*(0.5-Ilpf))。图5为一个实施例中的转换强度参数B(Ilpf)。
因此,采用上述图像宽动态范围压缩技术得到的最终输出结果为:
Iout(x,y)=Io(x,y)*B(Ilpf(x,y))+I(x,y)*(1-B(Ilpf(x,y)))
将Io(x,y)=Ic(x,y)*A+It(x,y)*(1-A)带入后得到:
采用上述技术输出的图像过度自然,计算简单,便于集成电路的硬件实现。
值得说明的是,若转换器强度参数B为函数曲线时,B函数是与局域均值相关联的函数,可以先将对B函数进行抽样,组成查找表,例如,对B函数抽样为64个点,这64个点组成查找表。在获取转换强度参数时,在确定局域均值之后,通过查表的方式获得转换强度参数B。若局域均值刚好为某一抽样点,则该抽样点对应的函数值即为要获取的转换强度参数B,若局域均值不是抽样点,则由与局域均值相邻的两个抽样点采用线性插值的方式计算得到转换强度参数B。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
在一个实施例中,如图6所示,还提供了一种图像宽动态范围压缩装置,该装置包括:计算模块100,用于计算图像像素的原始亮度值的局域均值。转换函数模块200,用于根据局域均值计算得到图像像素的转换函数。压缩模块300,用于根据所述转换函数对图像像素暗区的原始亮度值进行增强,对图像像素亮区的原始亮度值进行衰减,得到将原始亮度值进行压缩后的第一亮度值。对比度增强模块400,用于根据局域均值和转换函数对图像像素的原始亮度值进行对比度增强,得到将原始亮度值进行对比度增强后的第二亮度值。第一合成模块500,用于将第一亮度值和第二亮度值进行合成,得到将第一亮度值进行对比度增强后的第三亮度值。第二合成模块600,用于将第三亮度值和图像像素的原始亮度值进行合成,得到自然过度的第四亮度值。
本实施例中的图像动态范围压缩装置,通过转换函数将图像像素暗区的亮度值进行增强,将图像像素亮区的亮度值进行衰减,达到将高动态范围的图像像素转换为低动态范围的图像像素的效果,实现图像像素的宽动态范围压缩。同时,通过对原始亮度值进行对比度增强,并将对比度增强后的亮度值和压缩后的亮度值合成的方式,来较好的保持图像像素的对比度,进而达到保持图像清晰鲜明的效果。并且,通过将压缩和对比度增强后的亮度值与原始亮度值合成的方式达到图像像素过度自然的效果,克服传统对图像像素处理时人工痕迹较明显的缺陷。并且,采用上述方式输出的亮度值可以很好的显示器上显示或者在打印机上打印,计算过程简单,便于集成电路实现。
其中,值得说明的是,计算模块100中的计算图像像素的局域均值时可采用低通滤波器实现,即可通过硬件电路实现。转换函数模块200与计算模块100连接,用于接收计算模块100输出的局域均值,并根据局域均值生成图像像素的转换函数,可通过一函数生成电路实现。压缩模块300与转换函数模块200连接,用于根据转换函数对图像像素暗区的原始亮度值增强,对图像像素亮区的原始亮度值进行衰减,得到压缩后的第一亮度值,可通过一函数转换电路实现。对比度增强模块400分别与压缩模块300和计算模块100连接,用于对原始亮度值进行对比度增强以得到第二亮度值,可通过一对比度增强电路实现。第一合成模块500与压缩模块300和对比度增强模块连接,用于将第一亮度值和第二亮度值进行合成,得到第三亮度值,可通过加法电路实现。相似的,第二合成模块600与第一合成模块连接,用于将原始亮度值和第三亮度值进行合成,得到第四亮度值,可通过加法电路实现。图8示出了一个具体实施例中的电路实现图。其中,第一合成模块500中的第一获取单元510在获取对比度强度参数A时,可通过一乘法电路实现,第二合成模块600中第二获取单元610在获取转换强度参数B时,也可通过一乘法电路实现。
在一个实施例中,该装置还包括输入模块010,分别与计算模块100、压缩模块300和第二合成模块600连接,用于向计算模块100、压缩模块300和第二合成模块600中输入图像像素的原始亮度值,以及输出模块700,与第二合成模块600,用于输出第四亮度值。其中,输出模块700包括显示器和打印机。
在一个实施例中,计算模块100包括:均值滤波单元120,用于对输入的图像像素的原始亮度值进行均值滤波,得到图像像素的局域均值。
在一个实施例中,计算模块100还包括:缩小单元110,与均值滤波单元120连接,用于在均值滤波单元对图像像素进行均值滤波之前,缩小输入的图像像素。差值放大单元130,与均值滤波单元120连接,用于在均值滤波单元120对图像像素进行均值滤波之后,对滤波后的图像像素进行差值放大,得到所述图像像素的所述局域均值。
在一个实施例中,参见图7,转换函数模块200包括:计算单元210,用于根据局域均值计算得到转换函数的转换参数。转换函数单元220,与计算单元210连接,用于根据转换参数获得所述转换函数。
在一个实施例中,压缩模块300包括:查表单元310,与转换函数模块200连接,用于根据转换函数对输入的图像像素的所述原始亮度值进行查表,确定原始亮度值的区域位置。差值单元320,与所述查表单元连接,用于获取与原始亮度值相邻的两个采样亮度值,并采用线性插值的方式计算得到第一亮度值。
在一个实施例中,对比度增强模块400包括:转换单元410,用于采用转换函数对所述局域均值进行转换,得到转换后的转换局域均值。对比度系数单元420,用于计算转换局域均值与所述局域均值的比值,得到对比度系数。对比度增强单元430,用于采用对比度系数对原始亮度值进行对比度增强,得到所述第二亮度值。
在一个实施例中,第一合成模块500包括:第一获取单元510,用于获取对比度强度参数,其中,对比度强度参数为大于等于0小于等于1的值,对比度强度参数的值越大,对比度增强效果越强。对比度强度参数的值越小,对比度增强效果越小。第一合成单元520,用于采用对比度强度参数对所述第一亮度值和第二亮度值进行合成,得到第三亮度值。
在一个实施例中,第二合成模块600包括:第二获取单元610,用于获取转换强度参数,其中,转换强度参数越大,转换强度越大,转换强度参数越小,转换强度越小。第二合成单元,用于采用所述转换强度参数对所述第三亮度值和所述原始亮度值进行合成,得到第四亮度值,并输出第四亮度值。
由于此系统解决问题的原理与前述一种图像宽动态范围压缩方法相似,因此该系统的实施可以参见前述方法的实施,重复之处不再赘述。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。