一种基于直方图的自适应图像增强方法及终端
技术领域
本发明涉及图像处理领域,尤其涉及一种基于直方图的自适应图像增强方法及终端。
背景技术
近年来,随着工业技术和机器视觉的快速发展,对图像的质量要求越来越高,不管是用于改善人眼的视觉效果还是后续的机器视觉、甚至是智能的后处理,都需要更清晰、更能呈现细节内容的图像,而往往在很多应用场景下,由于场景条件的限制和影响会导致图像拍摄的视觉效果不佳,无法呈现或不能有效地呈现出图像中的有用信息。
图像增强技术是根据图像质量和应用采用信号处理的技术手段,对图像进行一系列变换以达到增强图像局部或整体特征细节的目的。其中,图像的直方图描述的是图像中具有该灰度级的像素的个数,表征了一幅图像中灰度级与出现该灰度的概率分布的关系。现有技术中,一种常用的图像增强的方法便是基于直方图的图像增强方法,直方图的统计分布表明了图像中灰度级数量的多少,通过对图像中像素数量多的灰度级进行扩展,对像素数量少的灰度级进行压缩,能够达到增强图像的对比图、突出图像细节的目的。
但是,现有的基于直方图的图像增强方法通常都只是简单地设定几个参数,基于设定的参数简单地将整个灰度区间划分为几个灰度区间,从而控制要进行扩展或压缩的灰度区间,自适应度不高,增强效果不佳。
发明内容
本发明所要解决的技术问题是:提供一种基于直方图的自适应图像增强方法及终端,具有很高的自适应度,能够自动使得图像通透清晰,增强效果良好。
为了解决上述技术问题,本发明采用的一种技术方案为:
一种基于直方图的自适应图像增强方法,包括步骤:
S1、获取待增强图像的亮度信息,根据所述亮度信息生成对应的直方图;
S2、根据所述直方图确定待增强的图像中与亮度对应的像素数量阈值,并将所述像素数量阈值分别与预设的图像增强变换的斜率一一对应,所述像素数量阈值的数量至少为两个;
S3、根据所述斜率和对应的像素数量阈值确定所述直方图中表示待增强图像各个亮度像素数量的各个段对应的斜率;
S4、根据所述各个段对应的斜率确定图像变换关系,根据所述图像变换关系对所述待增强图像的亮度进行变换。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种基于直方图的自适应图像增强终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1、获取待增强图像的亮度信息,根据所述亮度信息生成对应的直方图;
S2、根据所述直方图确定待增强的图像中与亮度对应的像素数量阈值,并将所述像素数量阈值分别与预设的图像增强变换的斜率一一对应,所述像素数量阈值的数量至少为两个;
S3、根据所述斜率和对应的像素数量阈值确定所述直方图中表示待增强图像各个亮度像素数量的各个段对应的斜率;
S4、根据所述各个段对应的斜率确定图像变换关系,根据所述图像变换关系对所述待增强图像的亮度进行变换。
本发明的有益效果在于:根据直方图确定待增强的图像中与亮度对应的像素数量阈值,并将其与预设斜率进行一一对应,根据所述阈值和预设斜率计算直方图中每段对应的斜率,根据直方图每段的斜率计算图像增强的变换关系,根据所述变换关系对图像亮度进行变换,并不是简单笼统地对分成少数个的灰度区间直接基于预设参数进行伸缩,而是基于直方图的段数先确定各个段对应的斜率,再根据各个段对应的斜率确定各个段的变换关系,进而得到各个段同步亮度增强后的图像,自适应强,并且增强效果良好,实现了增强图像对比图、突出图像细节的目的,为图像的后续观察、处理和识别提供了有效保证。
附图说明
图1为本发明实施例的一种基于直方图的自适应图像增强方法的步骤流程图;
图2为本发明实施例的一种基于直方图的自适应图像增强终端的结构示意图;
图3所示为本发明实施例的直方图各个段的斜率的线性插值拟合示意图;
标号说明:
1、一种基于直方图的自适应图像增强终端;2、存储器;3、处理器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。然而,可以以很多种不同的形式来实施本发明,且本发明不应该被解释为仅限于下面阐述的具体实施例。相反,提供这些实施例是为了使得本发明将全面和完整,是为了解释本发明的原理及其实际应用,从而使本领域的其他技术人员能够理解与本发明的原理和各种实施例。
本发明最关键的构思在于:根据直方图确定待增强的图像中与亮度对应的像素数量阈值,并将其与预设斜率进行一一对应,根据所述阈值和预设斜率计算直方图中每段对应的斜率,根据直方图每段的斜率计算图像增强的变换关系,根据所述变换关系对图像亮度进行变换。
请参照图1,一种基于直方图的自适应图像增强方法,包括步骤:
S1、获取待增强图像的亮度信息,根据所述亮度信息生成对应的直方图;
S2、根据所述直方图确定待增强的图像中与亮度对应的像素数量阈值,并将所述像素数量阈值分别与预设的图像增强变换的斜率一一对应,所述像素数量阈值的数量至少为两个;
S3、根据所述斜率和对应的像素数量阈值确定所述直方图中表示待增强图像各个亮度像素数量的各个段对应的斜率;
S4、根据所述各个段对应的斜率确定图像变换关系,根据所述图像变换关系对所述待增强图像的亮度进行变换。
从上述描述可知,本发明的有益效果在于:根据直方图确定待增强的图像中与亮度对应的像素数量阈值,并将其与预设斜率进行一一对应,根据所述阈值和预设斜率计算直方图中每段对应的斜率,根据直方图每段的斜率计算图像增强的变换关系,根据所述变换关系对图像亮度进行变换,并不是简单笼统地对分成少数个的灰度区间直接基于预设参数进行伸缩,而是基于直方图的段数先确定各个段对应的斜率,再根据各个段对应的斜率确定各个段的变换关系,进而得到各个段同步亮度增强后的图像,自适应强,并且增强效果良好,实现了增强图像对比图、突出图像细节的目的,为图像的后续观察、处理和识别提供了有效保证。
进一步的,所述步骤S2包括:
S21、根据所述直方图确定待增强的图像各个亮度中的最大像素数量和平均像素数量;
S22、根据所述平均像素数量确定最小像素数量;
S23、将所述最大像素数量和最小像素数量分别与预设的图像增强变换的最大斜率和最小斜率一一对应或者将所述最大像素数量、平均像素数量和最小像素数量分别与预设的图像增强变换的最大斜率、斜率1和最小斜率一一对应。
由上述描述可知,根据直方图能够直观简便地确定出待增强地图像各个亮度中的最大像素数量、平均像素数量和最小像素数量,在进行各个像素数量与斜率对应的过程中,可以只选取其中的最大和最小像素数量分别与最大斜率和最小斜率对应以简化计算,也可以再增加平均像素数量与斜率1的对应,使得所述计算更精细,进一步提高增强效果。
进一步的,所述步骤S3包括:
根据所述斜率和对应的像素数量阈值以及所述直方图中各个段表示的像素数量通过线性插值或者曲线拟合方法确定所述直方图中各个段的斜率。
由上述描述可知,在足够数量的斜率及对应的像素数量阈值的基础上,再根据直方图中各个段表示的像素数量,通过线性插值或曲线拟合方法即能够方便快捷地确定出所述直方图中各个段的斜率。
进一步地,所述步骤S4包括:
S41、根据所述各个段对应的斜率计算每一段的变换值:
Yti=Yti-1+ki×NInt,Yt0=0,i=1,2,…,N
式中,Yt表示变换后的亮度值,N表示直方图的总段数,i表示直方图的第i段,ki表示直方图第i段的斜率,NInt表示直方图每段包含的像素灰阶数;
S42、对Yt进行归一化处理得到归一化的亮度表:
YLuti=Yti×Ymax/YtN,i=1,2,…,N
式中,YLuti表示归一化的亮度表的第i个元素,Ymax表示Yt中的最大值,YtN表示Yt最后一个采样点的灰度值;
S43、根据所述归一化的亮度表对所述待增强图像的亮度进行变换:
式中,m表示像素点Yij所在的直方图段的序号,表示向下取整,Ye表示变换后的亮度信息。
由上述描述可知,先根据直方图中各个段对应的斜率进行计算并归一化得到归一化后的亮度表,再根据通用的公式对待增强图像的亮度进行变换,通用性强,并且通过归一化处理避免图像变得很暗或者变得很亮、大片溢出的情况。
进一步的,若所述带增强图像为彩色图像,则所述步骤S1之前还包括:
S0、将所述彩色图像从RGB空间转换到YUV空间,得到Y分量和UV分量;
所述步骤S4之后还包括:
S5、根据所述UV分量和所述变换后的亮度信息,将所述彩色图像从YUV空间转换到RGB空间。
由上述描述可知,对于彩色图像,先对其进行从RGB到YUV的空间变换,得到对应的亮度信息Y分量,在对Y分量进行增强变换后,再对其进行从YUV空间到RGB空间的变换,能够方便地实现对彩色图像的亮度增强变换。
请参见图2,一种基于直方图的自适应图像增强终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1、获取待增强图像的亮度信息,根据所述亮度信息生成对应的直方图;
S2、根据所述直方图确定待增强的图像中与亮度对应的像素数量阈值,并将所述像素数量阈值分别与预设的图像增强变换的斜率一一对应,所述像素数量阈值的数量至少为两个;
S3、根据所述斜率和对应的像素数量阈值确定所述直方图中表示待增强图像各个亮度像素数量的各个段对应的斜率;
S4、根据所述各个段对应的斜率确定图像变换关系,根据所述图像变换关系对所述待增强图像的亮度进行变换。
从上述描述可知,本发明的有益效果在于:根据直方图确定待增强的图像中与亮度对应的像素数量阈值,并将其与预设斜率进行一一对应,根据所述阈值和预设斜率计算直方图中每段对应的斜率,根据直方图每段的斜率计算图像增强的变换关系,根据所述变换关系对图像亮度进行变换,并不是简单笼统地对分成少数个的灰度区间直接基于预设参数进行伸缩,而是基于直方图的段数先确定各个段对应的斜率,再根据各个段对应的斜率确定各个段的变换关系,进而得到各个段同步亮度增强后的图像,自适应强,并且增强效果良好,实现了增强图像对比图、突出图像细节的目的,为图像的后续观察、处理和识别提供了有效保证。
进一步的,所述步骤S2包括:
S21、根据所述直方图确定待增强的图像各个亮度中的最大像素数量和平均像素数量;
S22、根据所述平均像素数量确定最小像素数量;
S23、将所述最大像素数量和最小像素数量分别与预设的图像增强变换的最大斜率和最小斜率一一对应或者将所述最大像素数量、平均像素数量和最小像素数量分别与预设的图像增强变换的最大斜率、斜率1和最小斜率一一对应。
由上述描述可知,根据直方图能够直观简便地确定出待增强地图像各个亮度中的最大像素数量、平均像素数量和最小像素数量,在进行各个像素数量与斜率对应的过程中,可以只选取其中的最大和最小像素数量分别与最大斜率和最小斜率对应以简化计算,也可以再增加平均像素数量与斜率1的对应,使得所述计算更精细,进一步提高增强效果。
进一步的,所述步骤S3包括:
根据所述斜率和对应的像素数量阈值以及所述直方图中各个段表示的像素数量通过线性插值或者曲线拟合方法确定所述直方图中各个段的斜率。
由上述描述可知,在足够数量的斜率及对应的像素数量阈值的基础上,再根据直方图中各个段表示的像素数量,通过线性插值或曲线拟合方法即能够方便快捷地确定出所述直方图中各个段的斜率。
进一步地,所述步骤S4包括:
S41、根据所述各个段对应的斜率计算每一段的变换值:
Yti=Yti-1+ki×NInt,Yt0=0,i=1,2,…,N
式中,Yt表示变换后的亮度值,N表示直方图的总段数,i表示直方图的第i段,ki表示直方图第i段的斜率,NInt表示直方图每段包含的像素灰阶数;
S42、对Yt进行归一化处理得到归一化的亮度表:
YLuti=Yti×Ymax/YtN,i=1,2,…,N
式中,YLuti表示归一化的亮度表的第i个元素,Ymax表示Yt中的最大值,YtN表示Yt最后一个采样点的灰度值;
S43、根据所述归一化的亮度表对所述待增强图像的亮度进行变换:
式中,m表示像素点Yij所在的直方图段的序号,表示向下取整,Ye表示变换后的亮度信息。
由上述描述可知,先根据直方图中各个段对应的斜率进行计算并归一化得到归一化后的亮度表,再根据通用的公式对待增强图像的亮度进行变换,通用性强,并且通过归一化处理避免图像变得很暗或者变得很亮、大片溢出的情况。
进一步的,若所述带增强图像为彩色图像,则所述步骤S1之前还包括:
S0、将所述彩色图像从RGB空间转换到YUV空间,得到Y分量和UV分量;
所述步骤S4之后还包括:
S5、根据所述UV分量和所述变换后的亮度信息,将所述彩色图像从YUV空间转换到RGB空间。
由上述描述可知,对于彩色图像,先对其进行从RGB到YUV的空间变换,得到对应的亮度信息Y分量,在对Y分量进行增强变换后,再对其进行从YUV空间到RGB空间的变换,能够方便地实现对彩色图像的亮度增强变换。
实施例一
请参照图1,一种基于直方图的自适应图像增强方法,包括步骤:
S1、获取待增强图像的亮度信息,根据所述亮度信息生成对应的直方图;
具体的,在获取待增强图像的亮度信息之前,先判断待增强图像是否为彩色图像,若是,则将所述彩色图像从RGB空间转换为HUV空间,比如获取的是16位彩色图像,可以采用高清图像标准的转换,具体的16位转换公式为:
式中,Y和UV分别表示16位亮度分量和16位颜色分量,R、G和B分别是三基色空间的红色、绿色和蓝色分量;
在进行空间转换后,可以将所述YUV的亮度分量Y中所有像素点进行256级亮度的直方图统计,也就是说,对16位Y统计256级直方图Hist256,每段占有256级灰阶,即灰度为0~255的所有像素统计到直方图第一段,灰度256~511的所有像素统计到第二段,……,依此类推,直到统计完Y中所有的像素为止,直方图中每一段的大小表示的即是相应的亮度的像素数量;
若不是,即待增强图像为黑白图像,则直接将黑白图像中各个像素点的值作为亮度进行N级亮度直方图统计,具体的级数N可以根据实际情况需要进行设定;
S2、根据所述直方图确定待增强的图像中与亮度对应的像素数量阈值,并将所述像素数量阈值分别与预设的图像增强变换的斜率一一对应,所述像素数量阈值的数量至少为两个;
具体的,包括步骤:
S21、根据所述直方图确定待增强的图像各个亮度中的最大像素数量和平均像素数量;
可以计算N级直方图中每段数量的最大值,得到最大像素数量Histmax,对于Hist256级直方图,其公式如下:
Histmax=max{Hist256}
式中,Histmax表示Hist256级直方图的最大值,max表示最大运算,Hist256表示直方图中每一段的大小;
其中,为了便于计算N最好是2的幂次方,如64、128或256等,本系统中N为128,关于直方图分段不能太少,太少效果不够明显,太大资源消耗太多;
而平均像素数量可以通过N段直方图所有像素数量的累加,并除以N得到,或者根据图像的大小,由图像宽度乘以长度并除以N得到,对于Hist256级直方图,其公式如下:
或
式中,Histmean表示Hist256级直方图的均值,sum表示求和运算;
S22、根据所述平均像素数量确定最小像素数量;
可以设置所述评价像素数量的1/M作为最小像素数量,优选的,选取M等于8;这样就得到如下:
最大阈值Hmax=Histmax,中间阈值Hmed=Histmean,最小阈值Hmin=Histmean/8;
S23、将所述最大像素数量和最小像素数量分别与预设的图像增强变换的最大斜率和最小斜率一一对应或者将所述最大像素数量、平均像素数量和最小像素数量分别与预设的图像增强变换的最大斜率、斜率1和最小斜率一一对应;
根据实际应用的需求,设定图像增强变换的最大斜率kmax和最小斜率kmin,最大斜率和最小斜率代表了图像增强的强度;最大斜率越大表示对图像中灰阶分布最多像素集合的拉伸越强,最小斜率越小表示对图像中灰阶分布最少像素集合的压缩程度越明显;
可以直接将最大阈值与最大斜率对应,将最小阈值与最小斜率对应;此外,为了进一步提高后续增强的精度,可以再增加一个中间斜率1,并将其与中间阈值对应;
S3、根据所述斜率和对应的像素数量阈值确定所述直方图中表示待增强图像各个亮度像素数量的各个段对应的斜率;
具体的,根据所述斜率和对应的像素数量阈值以及所述直方图中各个段表示的像素数量通过线性插值或者曲线拟合方法确定所述直方图中各个段的斜率,图3所示的是通过线性插值方法确定出的直方图中各个段的斜率,从图3可以看到,直方图各个段的斜率计算的结果在kmin和kmax之间,其中,优选的,kmax=2,kmin=0.5;
S4、根据所述各个段对应的斜率确定图像变换关系,根据所述图像变换关系对所述待增强图像的亮度进行变换;
具体的,包括如下步骤:
S41、根据所述各个段对应的斜率计算每一段的变换值:
Yti=Yti-1+ki×NInt,Yt0=0,i=1,2,…,N
式中,Yt表示变换后的亮度值,N表示直方图的总段数,i表示直方图的第i段,ki表示直方图第i段的斜率,NInt表示直方图每段包含的像素灰阶数,比如,对16位Y统计256级直方图Hist256,每段占有256级灰阶,则NInt为256;
S42、对Yt进行归一化处理得到归一化的亮度表:
YLuti=Yti×Ymax/YtN,i=1,2,…,N
式中,YLuti表示归一化的亮度表的第i个元素,Ymax表示Yt中的最大值,YtN表示Yt最后一个采样点的灰度值;
除以YtN是因为Yt是单调的,但其最大值可能不是饱和值,例如Yt是8bit,但如果Yt的最大值可能是小于或大于255的任何一个值,如果不做归一处理,图像亮度会发生变化,即变暗或者变亮;
举个例子,如果变换后YtN为124,那么对其进行归一化要乘以255/124,才能保证图像整体亮度不会变暗;如果变换后YtN为335,那么要乘以255/335,否则会有大片内容变换后大于255,使得图像溢出,整体亮度会偏亮;
S43、根据所述归一化的亮度表对所述待增强图像的亮度进行变换:
式中,m表示像素点Yij所在的直方图段的序号,表示向下取整,Ye表示变换后的亮度信息;上述的变换公式已经涵盖了不同的情况:若直方图分段每个像素为一段,例如8位亮度图像,统计256段直方图,则通过直接查表即可得到增强后的亮度信息,或者采用上述公式直接得到Yeij=YLutk;若图像直方图每段包含灰阶大于1,例如16位亮度图像,统计256段直方图,即每段包含8个灰阶,则通过分段线性插值计算得到最后自适应增强的图像,即将对应的像素值代入上述变换公式即可,假设Yij在256段的第8段,那么线性插值公式可表达为:
如果待增强的图像为黑白图像,则所述增强后的图像即为增强图像;若待增强的图像为彩色图像,则需要将增强后的亮度图像和颜色图像从亮色分离空间转换到彩色空间,具体的:
根据所述UV分量和所述变换后的亮度信息,将所述彩色图像从YUV空间转换到RGB空间,转换公式为:
式中,Ye为增强后的亮度分量,R、G、B分别为增强后彩色图像的红色、绿色和蓝色分量;
本发明实施例中的直方图N并不限制于256,而是根据系统应用实际需求来设定;最大阈值、中间阈值和最小阈值也可以采用其他的方式计算,如百分比等;最大最小斜率根据系统需求设定,当然可以根据应用自适应调整。
实施例二
请参照图2,一种基于直方图的自适应图像增强终端1,包括存储器2、处理器3及存储在存储器2上并可在所述处理器3上运行的计算机程序,所述处理器3执行所述计算机程序时实现实施例一种的各个步骤。
综上所述,本发明提供的一种基于直方图的自适应图像增强方法及终端,根据直方图确定待增强的图像中与亮度对应的像素数量阈值,并将其与预设斜率进行一一对应,根据所述阈值和预设斜率计算直方图中每段对应的斜率,根据直方图每段的斜率计算图像增强的变换关系,根据所述变换关系对图像亮度进行变换,并不是简单笼统地对分成少数个的灰度区间直接基于预设参数进行伸缩,而是基于直方图的段数先确定各个段对应的斜率,再根据各个段对应的斜率确定各个段的变换关系,进而得到各个段同步亮度增强后的图像,自适应强,并且增强效果良好,实现了增强图像对比图、突出图像细节的目的,为图像的后续观察、处理和识别提供了有效保证。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。