赵宇晓,李剑飞,朱志亮,2,段润涛,黄晓生
(1.华东交通大学 软件学院,江西 南昌 330013;2.中国科学院软件研究所 计算机科学国家重点实验室,北京 100190)
彩色图像灰度化是指将具有3个通道的彩色图像变成只含有一个通道的灰度图。尽管实际生活中能够感知到的几乎都是一些具有色彩的物体,但是相比于只有一个通道的灰度图像而言,彩色数字图像存在占用空间大、冗余信息多、运算时通道相关性难以保持的问题。这些问题导致彩色图像不适合部分生活、办公和商业用途,比如黑白印刷、电子墨水设备、数字墨水显示和黑白激光打印机等。此外,图像处理和计算机视觉任务中的边缘检测[1]、字典学习[2]等通常都是在灰度图中进行的。因此,彩色图像灰度化技术的研究仍然具有很好的应用前景。
彩色图像灰度化是一个降维处理的过程,在这个过程中不可避免地会造成原彩色图像的色度、对比度、结构等特征信息的丢失或弱化[3],从而极大地降低了图像带给人们的视觉体验。传统灰度化算法通常是采用颜色空间进行直接映射,提取图像的亮度通道值作为灰度值得到灰度图。这类方法在颜色对比高于亮度对比的区域会失去图像对比,不能区分一张图像中亮度相同但是颜色不同的区域。图1展示的是Lu等[4]提出的实时对比度保持灰度化方法得到的灰度化图像与传统的利用心理学灰度公式得到的灰度化图像,其中图1(a)是原彩色图,图1(b)是传统方法得到的灰度图,图1(c)是对比度保持方法得到的灰度图。从图中可以看出,基于对比度保持的灰度化方法得到的灰度图像更加能够反映原彩色图像的信息分布。除了对比度保持的方法外,为了在灰度图像中更好地保持原有彩色图像的对比度、结构等特征信息,国内外许多学者提出了很多其他的灰度化算法。卢红阳等[5]提出一种基于最大加权投影求解的算法。该算法借鉴线性降维局部保留投影的思想,将原始图像梯度的权重引入到最大化函数中,建立最大化加权局部保留投影模型,使得原彩色图像中对比度比较小的区域在灰度化后也能得到较好地保留。局部映射法得到的灰度图像能够保持图像的部分结构信息和局部对比度信息,但是由于没有考虑到全局结构特征对于灰度化结果的影响,会导致灰度化后的结果产生光晕、噪声等现象。全局映射法能够避免局部映射法的这种不足。Gooch 等[6]提出一种显著性保留的全局映射灰度化方法。该方法首先将彩色图像从RGB空间转换到CIELAB空间,然后结合亮度与色度差去建立像素间带符号的颜色差,最后利用灰度值与颜色差的最小二乘作为目标函数,并通过共轭梯度迭代法来求解目标函数。但是该方法的运算量很大,并且对于自然风景之类的高动态图片以及色彩丰富的图片进行处理时容易出现局部极值的结果,从而导致度化效果并不理想。Tanaka 等[7]用矩阵的形式得到Gooch能量函数的一个显式解,从而弥补了Gooch算法运算量过大的问题。但是该方法并没有在灰度化效果上有较为明显的提升。朱薇等[8]使用改进HLS(Improved HLS,IHLS)颜色空间建立了关于亮度、色度和饱和度3个因子的全局非线性映射模型,提出一种全局非线性三向映射的灰度化方法。Jin等[9]通过最大化灰度图像的方差来实现彩色图像灰度化的对比度保持。Lu等[10]将灰度化函数定义为由R、G、B 组合的9个多项式基加权求和,在对目标函数进行最小化求解时将局部约束和非局部约束结合起来,即利用K-means的方法把具有相同颜色的颜色对聚集在一起形成颜色对集,从而只计算图像中不同的颜色对。此方法可以提高计算效率,但也可能出现过拟合情况,并且由于最小化目标函数是对权值求偏导数的过程,具有高度非线性,只能寻找到解的近似值,而且有可能是局部解。为了改善这些问题,Liu 等[11]提出一种半参数方法,首先将Lu等[10]提出的9个多项式基分为3个子空间,灰度映射函数分为两部分,然后对Lu的目标函数进行改进得到6个方程,最后对这些方程求解得到最终的灰度化图像。全局映射法能够更好地保持全局结构信息,但由于所有的像素采用相同的映射法,会使结果图像变平滑,灰度化后可能无法保持原彩色图像的局部特征[12]。
图1 彩色图像灰度化示意图
上述方法在一定程度上能够较好地保持原有彩色图像的对比度、结构等特征,但都采用欧氏距离的方法来度量彩色像素点与周围其他像素点的差异。尽管欧氏距离能将彩色像素作为一个整体,但是该距离度量公式仅仅考虑到了通道整体的相关性,没有考虑到通道之间的相关性,因此可能导致距离的不准确,进而导致灰度化后的结果出现噪声或者细节丢失的情形。研究表明[13-18],利用四元数的理论和方法去研究彩色图像处理技术,能够克服现有彩色图像处理方法中的很多缺陷和不足。利用四元数的表示形式,可以将一个具有3个分量的彩色像素作为一个整体来表示,利用四元数的相关运算规则对彩色图像进行处理时不会破坏彩色像素3个通道之间的相关性。利用四元数的相关理论,本文提出一种新的对比度保持灰度化方法。首先,本文利用四元数旋转理论提出基于色度面投影的四元数色度距离度量公式;其次利用该色度距离公式,提出基于随机差分的彩色图像全局对比度度量方法和基于水平和垂直差分的彩色图像局部对比度度量方法;最后利用对比度保持灰度化的思想实现对彩色图像的灰度化处理。
一个具有3通道的彩色像素p=[r,g,b]可以用一个纯四元数表示为q=ri+gj+bk。在纯四元数空间坐标系里,3个相互垂直的轴代表了彩色像素的3个基本颜色,即红色(R)、绿色(G)和蓝色(B)。纯四元数空间的主对角线定义为灰度线,因为这条直线上所有的点对应的像素都是灰度像素。与此类似,本文定义从原点出发的位于纯四元数密闭空间里的其他直线为色调线,因为在这些直线上所有的点对应的像素都是彩色像素,并且每一条射线都可以代表不一样的颜色,比如3个基本的轴代表了3个基本的颜色。进而,定义经过原点并且与灰度线垂直的平面为色度面,因为所有色度线在该平面的投影都不为零,而灰度线在该平面的投影为零。图2为纯四元数空间里灰度线、色度线和色度面的示意图。
图2 灰度线、色度线和色度面的示意图
(1)
(2)
(3)
式(3)中的两个常数,用来对距离进行归一化,即保证色度距离和亮度距离的最大值为255。这样色度距离和亮度距离都会在同一个量纲里,并且与单通道的灰度像素之间的距离具有同一个量纲。
本文对比度指的是不同像素之间的差异大小。对比度在很大程度上代表了图像的纹理、细节和颜色特征。图像对比度越大,说明图像包含的纹理、细节和颜色特征越丰富。对于彩色图像,对比度包含了色度对比度和亮度对比度。现有的对比度保持灰度化方法都能够很好地保留图像的亮度对比度,但是由于在计算彩色像素之间的差异时没有充分考虑通道相关性的不足,往往灰度化后的结果的色度对比度没有得到很好地保持。因此,本文利用提出的四元数色度距离,结合全局对比度和局部对比度融合的思想,提出色度对比度度量方法。
全局色度对比度的度量采用基于随机差分的方法。即在全局范围内随机寻找两个彩色像素,并利用四元数色度距离计算公式计算像素之间的色度差异,然后利用此差异作为该像素对的对比度度量结果。使用O表示原彩色图像像素点的集合,O′表示随机打乱后的彩色像素的集合,P和P′分别表示O和O′中相同位置的像素。那么,基于随机差分的全局色度对比度量的计算公式可以表示为
δg=ds(P,P′)
(4)
局部色度对比度的度量则通过融合水平方向像素间的对比度和垂直方向像素间的对比度来进行度量。使用Lw表示水平间的局部色度对比度度量,Lh表示垂直间的局部色度对比度度量,则局部对比度度量的计算公式可以表示为
(5)
综上所述,本文提出的四元数色度对比度度量公式可以表示为
δ(P,P′)=δg+δl
(6)
对比度保持灰度化方法能够最大程度保留原彩色图像的对比度,进而最大程度保留原彩色图像细节特征。本文利用所提出的四元数色度对比度度量方法对Lu等[4]提出的实时对比度保持灰度化方法进行改进,提出基于四元数色度距离的对比度保持灰度化方法,具体的实现过程如下。
(1)构造对比度保持的目标函数
(7)
式中:I表示输入的彩色图像,(Ir,Ig,Ib)是彩色图像对应的3个通道的灰度值;x和y代表两个像素对应的位置;Ω代表指定的区域;Δgx,y表示按照色度对比度度量方法得到的对应的灰度化后的两个像素的全局对比度和局部对比度;δx,y代表两个像素的色度对比度,用式(6)计算得到;σ是一个用来控制彩色图像中色彩分布的一个给定常数;αx,y是一个权重值,根据式(8)来确定
(8)
(2)用最近邻插值的方法来将图像缩小至64×64的大小后,按照给定的组合系数(wr,wg,wb),来对彩色图像进行灰度化。灰度化的过程可以表示为
g=wrIr+wgIg+wbIb
(9)
(3)选取最佳的组合系数来作为对彩色图像进行灰度化的组合系数,最佳的组合系数是指使目标函数取值最小的组合系数,用公式表示为
minE(I), s.t.wr+wg+wb=1
(10)
为了证明本文算法QRtGray的可靠性,在Intel i7-8700 CPU@3.2 GHz,32 GB内存,Window10系统的PC上利用MATLAB 2018a软件进行实验,并与Lu等[4]的方法RtGray、Xiong等[20]的方法PrDecolor、Nafchi等[21]的方法CorrC2G、Liu等[22]的方法WpmDecolor和Chen等[23]的方法BtDecolor进行比较。在实验中,按文献[4]给定的参数,将σ设置为0.05,将组合系数(wr,wg,wb)按0.1的步长设置,即(0,0,0.1)→(0,0,0.2)→(0,0,0.3)。在进行水平方向和垂直方向的差分时,先将64×64的图像用最近邻插值的方法来将图像缩小至32×32,然后再进行局部对比度的计算。这个设置方法也与文献[4]的设置方法一致,可以加快算法的运行速度,同时保持高质量的灰度化效果。
首先,本文选取2幅人工合成的大小为256×256的图像进行实验。图3展示了本次实验所用的原彩色图。图4展示了上述6种方法得到的灰度图。
图3 人工合成图像示意图
图4 人工合成图像的灰度化结果
从结果可以看出本文所提出的方法得到的灰度化结果仍然可以很好地保持原彩色图像的细节对比度和色彩对比度。对于第一幅图,本文方法、CorrC2G方法、WpmDecolor方法以及BtDecolor方法能够获得较好的灰度化结果,即灰度化后的结果中能够很好地看出数字2,这与彩色图像中隐含的数字2是对应的。通过视觉感知可以看出,本文提出的方法获得的效果是最好的。PrDecolor和RtGray得到的结果只能勉强分辨出数字2。对于第二幅图,本文方法和WpmDecolor方法以及PrDecolor方法能够获得较好的灰度化结果,即灰度图片中花和草的对比更为清晰一些。表1给出了6种方法处理这两幅图片的时间。由于程序运行时间可能会受到其他应用程序的影响,因此为了更准确计算程序运行时间,取程序运行10次后的最小时间作为程序运行所需要的时间。从结果可以看出,本文方法具有很好的实时性。
表1 处理时间 s
为了进一步验证本文方法的有效性,本文进一步选取6幅不同尺寸的图像来进行实验。实验所采用的图片如图5所示,其中图5(a)、图5(b)和图5(c)的大小为512×512,图5(d)的大小为512×597,图5(e)的大小为512×341,图5(f)的大小为512×320。
图6展示了本文提出的方法与所对比方法对图5所展示的彩色图像进行灰度化处理后的结果。从结果可以看出本文所提出的方法比其他方法在视觉上更好一点。对于图5(a),本文方法很好地保持了天空中云朵的细节特征;对于图5(b),本文方法很好地保持太阳周围的对比度;对于图5(c),本文方法很好地保持了青山的色彩对比度;对于图5(d),本文方法很好地保持了花蕊和叶片的对比;对于图5(e),本文方法很好地保持了天空云朵对比度以及车与电池的对比度;对于图5(f),本文方法很好地保持了不同颜色花朵的对比度。
图5 用于实验的不同尺寸图像
相比来看,Lu等[4]的方法在处理图5(a)时,云朵边缘特征不是很清晰;在处理图5(b)时,夕阳特征不是很清晰;在处理图5(c)时,灰度化后的结果偏黑,整体对比特征不明显;在处理图5(d)时,虽然花瓣对比很明显,但是相比于原彩色图,花蕊与花瓣的对比差异没有很好地体现出来;在处理图5(e)时,天空的特征没有很好体现出来,并且没有将车身与车上物体明显区分开来,与原彩色图像不一致;在处理图5(f)时,原彩色图中黄色花朵与红色花朵灰度化后的差异相对较小,而本文提出方法得到的差异则相对更加明显,也更加符合原彩色图像的视觉效果。本文提出的基于四元数色度距离的对比度保持灰度化方法是在Lu等[4]提出的实时对比度保持灰度化方法上改进得到的。由于利用四元数将一个具有3个分量的彩色图像作为一个整体来进行表示和处理,因此不会破坏彩色像素3个通道之间的相关性,能够更好地度量彩色图像的对比度,从而灰度化后的结果能够更好地保持原彩色图像的对比度,进而获得更好的灰度结果。
为了从客观上对本文方法的效果进行验证,本文选取E-score指标来对本文提出的方法和其它5个方法进行比较。Lu等[24]验证了E-score指标与人类的感知基本符合,可以用于灰度图片质量的评价。E-score是感知颜色对比度保持度(Color contrast preserving ratio,CCPR)和色彩内容保真度(Color content fidelity ratio,CCFR)的调和平均数。CCPR度量指标是基于一种颜色感知现象,即当两个颜色的欧式距离小于一个确定的值τ时,人类视觉系统通常看不见差异,因此对比度保留法的任务只能维持人类可感知的颜色对比。CCFR具体计算公式可以参阅文献[24]。表2~4给出了不同方法处理图5所示的6幅图像得到的灰度图像在3种不同阈值(τ=5,8,10)情况下的E-score值,其中加粗字体表示E-score值优于本文方法的结果。从表中可以看到,本文提出的方法在处理图5(c)、5(e)和5(f)时获得的结果优于其他方法获得的结果,在处理图5(a)和5(b)时,本文提出的方法获得的结果优于其他部分方法的结果。本文提出的方法在处理图5(d)时仅仅优于BtDecolor方法。这是由于该图片整体颜色数量偏少,因此在全局对比度保持方面,本文方法获得的灰度图片的E-score值不如其他方法。但是从视觉效果可以看出,本文提出的方法很好地保持了花蕊和叶片的局部对比度。总的来说,本文提出的方法能够获得较好的灰度化结果。
表4 不同方法得到的E-score结果(τ=10)
彩色图像灰度化技术是图像预处理环节中重要的一部分。本文针对传统的基于欧氏距离度量的对比度保持灰度化方法没有充分考虑彩色图像通道相关性的不足,提出基于四元数色度距离的对比度度量方法,并以此构造对比度保持的灰度化模型。实验结果表明,本文提出的方法优于对比的方法,能够保留原始图像的更多细节信息,具有一定的实用和参考价值。但是本文提出的方法仍然属于全局映射的方法,没有充分考虑图像局部特征。下一步可以将局部对比度计算的思路与本文提出的方法相结合来解决这个问题。