发明内容
有鉴于此,本发明的主要目的在于,提供一种增强文本图像可视性的方法,包括步骤:
A、识别出文本图像的彩色区域和灰度区域,
B、针对彩色区域:进行饱和度调整和色彩增强调整;及
针对灰度区域:进行分块处理,确定各块的背景光照值;依照所述背景光照值对各块进行灰度增强调整。
由上,本发明通过将文本图像进行彩色和灰度的区分,采用不同调节方式具有针对性的对两种不同的文本图像进行自动可视性增强调整,使处理过的图片能够更加清晰,对比明显。
可选的,步骤A包括:
将文本图像各像素点由RGB颜色空间转换为YUV颜色空间;
设定一色差阈值;
判断各像素点在YUV颜色空间中“U”通道和“V”通道表示的色度值小于所述色差阈值时,该像素点对应灰度区域;否则,该像素点对应彩色区域。
由上,依据图像的彩色或灰度的区别预设色差阈值,并且依据该色差阈值确定待调整的文本图像的颜色情况,以便进行可视性增强调整。
可选的,步骤B所述饱和度调整的步骤包括:
将彩色区域的各像素点转换为HSL色彩模式,获取各像素点的色彩的饱和度分量S和色彩明度分量L;
设置一调整饱和度的调整参数increament,increament∈[-1,1];
当increament≥0时:若(increament+S)≥1,则alpha=1/S-1;若(increament+S)<1,则alpha=1/(1-increament)-1;
各个像素点的饱和度按照下述公式调整:rgbvalue_after=rgbvalue_before+(rgbvalue_before-L*255)*alpha;
当increament<0时,则alpha=increament;
各个像素点的饱和度按照下述公式调整:rgbvalue_after=L*255+(rgbvalue_before-L*255)*(1+alpha);
其中,alpha表示饱和度调整的增益系数;rgbvalue_before表示像素点在饱和度调整前的r、g、b三通道值;rgbvalue_after表示像素点在饱和度调整后的r、g、b三通道值;L*255表示像素点的亮度值。
由上,通过计算式调整参数实现最终对于r、g、b三通道值的调整,以使文本图像呈现出饱和度更高的像素值。从色彩空间来看,使得图像更加明亮鲜艳。
可选的,所述各像素点的色彩的饱和度分量S和色彩明度分量L采用下述公式获取:L=(rgbmax+rgbmin)/510;
获取所述色彩的饱和度分量S包括:
当L<0.5时,S=(rgbmax-rgbmin)/(rgbmax+rgbmin);
当L>0.5时,S=(rgbmax-rgbmin)/(510-(rgbmax+rgbmin));
其中,rgbmax表示待调整饱和度的像素点的r、g、b三通道的最大值;rgbmin表示待调整饱和度的像素点的r、g、b三通道的最小值。
由上,获取文本图像转换为HSL色彩模式,便于在该模式下对文本图像进行饱和度调整。
可选的,步骤B所述色彩增强调整的步骤包括:
在灰度直方图中统计出各级灰阶出现的次数总和
分别从低灰阶、高灰阶起,将该灰阶所对应的出现次数进行累加,直至累加值达到2%时停止,将计算停止时所对应的灰阶分别设为低阶阈值t_low和高阶阈值t_high。
式中x表示0~255的灰阶,y表示任一灰阶所对应出现的次数;
针对高于低阶阈值t_low且低于高阶阈值t_high的部分所对应的像素点,采用gamma曲线对其灰阶直方图进行拉伸。
可选的,采用gamma曲线对其灰阶直方图进行拉伸包括:
设置gamma指数为x=mean/A;
gamma函数为outtemp=(i/255)^(1/x);
输出灰度为out=outtemp*255;
式中x表示gamma指数,A表示用户预设的值,mean表示整幅图像灰阶的平均值,i表示0到255灰阶。
由上,采用S型曲线对文本图像进行增强,使灰阶向两端拉伸,从而达到背景更亮,前景更暗的效果。并且选取了两个灰阶阈值,使低于低阶阈值的像素灰阶为0,高于灰阶的像素灰阶为255,这样使得对比度更加强烈。
可选的,步骤B所述灰度增强调整包括:
对文本图像的灰度区域进行分块;
针对每个分块,统计所有像素点的灰度值,并对灰度值降序排列,取前四分之一数量的灰度值计算平均值,作为背景光照值。
可选的,步骤B所述灰度增强调整还包括:采用高斯模糊算法对灰度区域的所述各块进行模糊处理。
由上,避免分块造成的各块间像素值波动,减轻分块效应。
可选的,步骤B所述各块灰度增强调整包括:
向低灰阶拉伸灰度直方图,调节方法为:y=(0.5-0.5cos((x/m)^p*π))*x;
向高灰阶拉伸灰度直方图,调节方法为:y=([5/(255-x)]*[0.5-0.5cos((m/x)^p*π)+1]*x)*x;
式中x为块中各像素的灰度值,m为该像素所在块对应的背景光照值,p为指数常量,y为增强调整后输出的像素点的灰度值。
由上,对于对比度不高的灰度区域,在其灰度直方图呈现的是灰阶接近的像素聚集非常明显,通过以上步骤进行灰度增强,使相邻灰阶距离会拉伸,增强效果也会明显。
具体实施方式
为克服现有技术存在的缺陷,本发明提供一种增强文本图像可视性的方法,依据对文本图像的分析,从而自动对其饱和度或对比度进行调整,以实现使文本图像清晰、明亮。
如图1所示,本发明包括以下步骤:
步骤S10:区分文本图像的彩色区域和灰度区域。
文本图像包括彩色图、灰度图或彩色和灰色的混合图,对于不同色差,在处理过程中需要区别对待。将文本图像由RGB颜色空间转换为YUV颜色空间。YUV颜色空间中的“Y”通道表示明亮度,也就是灰阶值;而“U”通道和“V”通道表示的则是色度,作用是描述色彩及饱和度,用于指定像素的颜色。
依据在先图像实验结果,设定色差阈值uv_threshold,当YUV颜色空间中色差通道“U”和“V”的值均小于所设定的色差阈值时,认为文本图像是灰度像素。基于此,便得到了文本图像的彩色像素区域以及灰色像素区域。
其中,设定色差阈值的依据在于:如果彩色很明显,那么色差绝对值就越大,反之,如果灰度越明显,那么色差越小。色差阈值uv_threshold就是根据这个原理,通过多次实验选取的。
针对彩色像素区域,执行步骤S20和步骤S30;针对灰色像素区域,执行步骤S40和步骤S50。
步骤S20:对彩色像素区域进行饱和度调整。
针对彩色像素区域的每个像素点,调整其饱和度。具体的采用HSL色彩模式进行饱和度调整,HSL色彩模式是工业界的一种颜色标准,其中包括:H(hue)分量,代表的是人眼所能感知的颜色范围;
S(saturation)分量,指的是色彩的饱和度,它用0%至100%的值描述了相同色相、明度下色彩纯度的变化。数值越大,颜色中的灰色越少,颜色越鲜艳;
L(lightness)分量,指的是色彩明度,作用是控制色彩的明暗变化。它同样使用了0%至100%的取值范围。数值越小,色彩越暗,越接近于黑色;数值越大,色彩越亮,越接近于白色。
S分量和L分量的取值范围为[0,1]。
其中,L分量表示为 式中value表示中间变量,rgbmax表示待调整饱和度的像素点的r、g、b三通道中的最大值;rgbmin表示待调整饱和度的像素点的r、g、b三通道中的最小值。由于value表示中间变量,因此上述L分量还可表示为L=(rgbmax+rgbmin)/510。
当L<0.5时,S分量表示为
同理,当L<0.5时,S分量还可表示为S=(rgbmax-rgbmin)/(rgbmax+rgbmin)。
当L>0.5时,S分量表示为
同理,当L>0.5时,S分量还可表示为S=(rgbmax-rgbmin)/(510-(rgbmax+rgbmin))。
依据图像的视觉效果,设置一调整饱和度的调整参数increament,increament∈[-1,1],该参数用于控制文本图像饱和度的强弱。通过在先实验,针对不同文本图像进行饱和度调整,以使文本图像不至于过饱和或欠饱和为基准进行统计,以此可设置一最优调整参数increament。
当increament≥0时,若(increament+S)≥1,alpha=S;
若(increament+S)<1,alpha=1-increament。
其中,alpha表示饱和度调整的增益系数,alpha=1/alpha-1,即当(increament+S)≥1时,alpha=1/S-1;当(increament+S)<1,alpha=1/(1-increament)-1。
对于该像素点的饱和度调整为:rgbvalue_after=rgbvalue_before+(rgbvalue_before-L*255)*alpha。
increament<0时,则alpha=increament,对于该像素点的饱和度调整为:rgbvalue_after=L*255+(rgbvalue_before-L*255)*(1+alpha)。
针对各像素点,式中,rgbvalue_before表示像素点在饱和度调整前的r、g、b三通道值,L*255表示像素点的亮度值(介于0~255之间),此时它就介于rgbmax和rgbmin之间,rgbvalue_after表示像素点在饱和度调整后的r、g、b三通道值。通过公式调整,呈现出饱和度更高的像素值。从色彩空间来看,使得图像更加明亮鲜艳。由于饱和度是一个量化的值,本步骤中对于饱和度的调整最终还是要反映到像r、g、b三通道值来体现。调整饱和度,就是调整r、g、b三通道值,本步骤就是通过调整参数,实现最终对于r、g、b三通道值的调整。
实际调整过程中,由于每个像素点的通道组成不是一定的,有的像素点是单通道,有的像素点是三通道,还有像素点可能是四通道。因此每个通道的值均要单独计算。例如当像素点为单通道时,均需计算一次;当像素点为三通道时,则每个通道均需计算一次。
另外,饱和度的调整参数increament可由用户交互调整,例如,若用户对自动增强的效果不满意,可以通过调整这些参数,改变增强效果使之满意。针对用户所输入的不同调整参数increament,采用上述计算式进行调整计算。
步骤S30:对彩色像素区域进行色彩增强调整。
首先统计整幅图像的灰度直方图,分别选择低阶阈值t_low和高阶阈值t_high。具体的,首先统计出各级灰阶出现的次数总和式中x表示0~255的灰阶,y表示任一灰阶所对应出现的次数。
从低灰阶起,将该灰阶所对应的出现次数进行累加,直至累加值达到2%时停止,将计算停止时所对应的灰阶设为低阶阈值t_low。同理,从高灰阶起,将该灰阶所对应的出现次数进行累加,直至累加值达到2%时停止,将计算停止时所对应的灰阶设为高阶阈值t_high。低于t_low的像素灰阶设置为0,高于t_high的像素灰阶设置为255。高于低阶阈值t_low且低于高阶阈值t_high的部分所对应的像素点称为中间灰阶直方图。
使用gamma曲线对中间灰阶直方图进行拉伸。gamma指数为x=mean/A,式中A表示用户预设的值,本实施例设为150;mean表示整幅图像全部灰阶的平均值。
gamma函数 式中x是gamma指数,i指的是0到255灰阶。将gamma函数的两个算数式合并,其还可写为:outtemp=(i/255)^(1/x)。
最后,将gamma曲线的输出结果还原为0~255之间的灰阶数值,即out=outtemp*255。
本步骤采用gamma曲线对中间灰阶直方图调整灰度,采用的是S型曲线对图像进行增强,使灰阶向两端拉伸,从而达到背景更亮,前景更暗的效果。并且本算法选取了两个灰阶阈值,使低于低阶阈值的像素灰阶为0,高于灰阶的像素灰阶为255,这样使得对比度更加强烈。
步骤S40:对灰度区域的文本图像进行分块处理,确定背景光照值。
对灰度区域的文本图像进行分块,假设各块的尺寸为w*w,统计每个分块中所有像素点的灰度值,对各像素点的灰度值降序排列,取前面四分之一数量的灰度值,计算平均值,作为背景光照值。为了避免分块造成的各块间像素值波动,采用高斯模糊算法对灰度区域的所述各块进行模糊处理,减轻分块效应。
步骤S50:依照背景光照值对灰度区域进行灰度增强处理。
首先向低灰阶拉伸灰度直方图,使黑色文字变得更黑,调节方法为
式中x为输入像素的灰度值,m为该像素所在块对应的背景光照值,p为指数(常量),y为增强调整后输出的像素灰度值。将上述两计算式合并,调整后输出的像素灰度值还可表示为:y=(0.5-0.5cos((x/m)^p*π))*x。
其次,向高灰阶拉伸灰度直方图,使背景变得的更亮,调节方法为:
式中x为输入像素的灰度值,m为该像素所在块对应的背景光照值,p为指数(常量),y为增强调整后输出的像素灰度值。将上述两计算式合并,调整后输出的像素灰度值还可表示为:y=([5/(255-x)]*[0.5-0.5cos((m/x)^p*π)+1]*x)*x。
对于对比度不高的灰度区域,在其灰度直方图呈现的是灰阶接近的像素聚集非常明显,通过以上两步灰度增强,相邻灰阶距离会拉伸,增强效果也会明显。对于白底黑字的图像,低灰阶靠近0,高灰阶靠近255。
本发明通过上述步骤对文本图像进行处理后,能够较好的增强文本图像的可视性,使文本更加清晰,使得处理后的文本图像达到类似于扫描结果的可视度。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明。总之,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。