焦腾云,王明泉,张俊生,郭智杰,王 玉
(中北大学 仪器科学与动态测试教育部重点实验室,山西 太原 030051)
随着经济的快速发展,汽车需求量不断增多,人们越来越注重汽车的安全性能,而质量合格的轮毂对汽车的行车安全相当重要.轮毂毛坯在铸造完成后要通过X光照射来进行缺陷检测,成像效果的优劣直接影响到缺陷是否能够正确判定,而图像显示算法的优劣将直接影响成像效果.在目前的轮毂X射线成像系统中,常采用的图像显示算法为窗位窗宽算法,将0~65 535之间的一部分值映射到0~255上[1].此算法不仅操作过程繁琐,而且效率不高,不能同时还原图像的各部分细节.而在自然光高动态图像的显示领域,有一种比较成熟的色调映射技术,能够将高动态范围图像在低动态范围显示器上更好地显示.
色调映射算法由Tumblin等人于1993年引入到计算机图形学领域[2].现有的色调映射算法主要分为两类:全局色调映射算法和局部色调映射算法.全局色调映射算法对整幅图像的每个像素应用相同的压缩曲线,优点是结构简单且运算速度快,能够保持整体的明暗效果,缺点是会导致输出图像的对比度、细节、纹理等信息的丢失.从20世纪80年代开始,就有很多的专家学者进行全局色调映射算法的研究[2-4].另一种色调映射算法为局部色调映射算法,一个像素点的压缩依赖于邻域像素点.局部色调映射算法能够在压缩动态范围的同时保持图像的细节和纹理,增强图像的局部对比度.对于局部色调映射,许多学者做了大量研究,Durand和李红平等人[5-6]利用双边滤波技术,较好地保留了图像细节信息;Farbman、Fattal和Gu等人[7-8]采用了基于梯度的多尺度分解方法,在局部显著的边缘处保留了细节;He等人[9]提出了具有边缘保持特性的图像引导滤波算法,得到了优于双边滤波器处理后的图像效果;Xie等人[10]通过使用快速聚类算法和梯度引导,提高了色调映射的保真度.
基于以上分析讨论,为了更好地将轮毂高动态X射线图像显示出来,使映射后的图像有一个较好的整理明暗效果,适应人眼视觉系统,同时保持图像边缘、突出图像细节信息,本文提出了一种基于梯度域引导滤波的分层色调映射算法.
梯度域引导滤波器是由Kou等人[11]于2015年提出来的,在传统引导滤波器的基础上对边缘进行显式的处理,引进了明确的一阶边缘感知算子,使图像的边缘细节信息更好地保留.梯度域引导滤波由输入图像X、引导图像G和输出图像Z组成.在以像素p′为中心,ζ为半径的方形窗口Ωζ(p′)中,引导图像和输出图像有如下的线性关系
Z(p)=ap′G(p)+bp′,∀p∈Ωζ(p′),
(1)
式中:ap′和bp′为两个常数.
对式(1)两端取梯度得
Z(p)=ap′G(p).
(2)
由式(2)可知,窗口Ωζ(p′)内的输出图像Z的平滑度取决于ap′值的大小.
由文献[11]得到代价函数
(3)
式中:一阶边缘感知权重ΓG(p′)通过3×3窗口和(2ζ+1)×(2ζ+1)窗口内的局部方差来定义,表示像素p′对整个图像的重要性,定义如式(4)所示,γp′的定义如式(5)所示
(4)
式中:χ(p′)被定义为σG,1(p′)σG,ζ(p′);N为总的像素点个数;ζ为窗口半径大小,由文献[11]可得,ζ取值为16时,能够起到一个很好的边缘保持和平滑噪声的效果,因此本文ζ取值为16.
(5)
利用最小二乘法得到式(3)的最优解
(6)
bp′=μX,ζ(p′)-ap′μG,ζ(p′).
(7)
在计算每个窗口的线性系数时,一个像素会被多个窗口包含,每个像素都由多个线性函数所描述,因此用ap′和bp′的均值来计算最后的输出图像.
(8)
本文算法的基本流程如图1所示.
本文对16位轮毂X射线图像进行处理,直接获取到图像的亮度值,为了更好地适应人眼视觉系统,将数据转换到对数域并归一化,然后将归一化图像进行梯度域引导滤波得到包含大尺度信息的基础层,归一化图像减去基础层得到细节层,对基础层进行自适应对数压缩,对细节层进行补偿,将压缩后的图像和补偿后的图像合并重构得到合并图像,最后对合并图像进行后处理得到低动态的输出图像.
图1 本文算法流程图
由韦伯定律可以得出人眼视觉系统对亮度的感知规律与对数函数有很高的相似性,对亮度通道进行取对数处理,理论上能够增强图像的质量.因此本文将亮度转换到对数域,然后将对数域亮度归一化,数据范围变换到[0,1]区间,转换公式为
I[0,1](x,y)=
(9)
式中:I(x,y)为原始亮度值;I[0,1](x,y)为取对数并归一化后的亮度值;Imax为最大亮度值;Imin(x,y)为最小亮度值;ε是一个小的常数值,本文取值为e(-10).
在图像分层方面本文选用具有良好边界保持性能且不会引起“梯度反转”现象的梯度域引导滤波器代替双边滤波来进行图像的分层操作.它能够对图像进行有效的平滑,且具有良好的边界保持性能,在主要的边缘附近没有梯度的变形,能够很好地避免伪影等现象的产生.而且算法速度较快,时间复杂度仅为O(N).
在梯度域引导滤波算法中,引导图像和输入图像可以相同也可以不同[11].当引导图像和输入图像相同时,梯度域引导滤波起到保持边缘的作用,在本文中即采用这种思路.
在对亮度值取对数并归一化之后,利用梯度域引导滤波对图像进行分解
Ib(x,y)=G(I[0,1](x,y),p(x,y)),
(10)
Id(x,y)=I[0,1](x,y)-Ib(x,y),
(11)
式中:G( )表示梯度域引导滤波操作;Ib(x,y)表示动态范围较大的基础层;Id(x,y)表示含有局部细节信息的细节层.
对数函数曲线非常接近人眼对亮度的感知,将对数函数作为压缩函数,理论上能够得到较好的效果.Dragod等人[3]于2003年提出了自适应色调映射算法,根据图像中像素亮度值的不同使对数基进行自适应调整.在此算法中,为使对数方程的基数能够在2~10之间自适应调整,引进了一个偏置函数
(12)
式中:b为用户可调节的参数,调整图像映射后的整体明暗度.
对式(12)利用对数换底公式进行改进,得到自适应色调映射函数
(13)
式中:Ib-dmax(x,y)表示显示介质的显示能力,通常取值为100 cd/m2.Ib-dmax(x,y)=Ibmax(x,y)·exposure,expouser为用户可调节的曝光度.在式(13)中,b通常取值为[0.7,0.9],对于轮毂高动态X射线图像,取值为0.85时能取得一个满意的效果.
为了解决暗区域的细节丢失问题,完成色调映射之后进行γ校正,γ一般取值为2.2,γ校正公式为
(14)
由于细节层中包含有一些图像的细节纹理信息,为了使映射后的图像细节纹理突出,考虑到算法的效率,本文利用式(15)对细节层进行增强操作.
(15)
其中细节层调整参数α≥1,对细节层进行相应倍数的放大操作,取值太小细节部分得不到好的增强效果,取值太大会产生光晕并使观察者感觉到视觉上的虚假.经过实验验证分析,针对轮辐部分本文取值为7,轮辋部分取值为10,轮芯部分取值为1.2.
在将基础层压缩后的图像和细节层补偿后的图像进行合并后,进行后处理操作,考虑到噪声并增加主要像素的对比度,分别裁剪掉高3%,低1%的像素重新归一化,最后得到映射后的输出图像.
为了验证本文算法的可行性,在Intel i5-5200U四核处理器(主频为2.20 GHz),内存为4 G的实验平台上,利用Windows 7 、32位操作系统下的Matlab8.5.0编程开发环境对轮毂的3个主要部位轮辐、轮辋、轮芯图像进行实验验证.比较不同算法对于图像的映射效果,判断边缘和细节处是否出现模糊,是否具有较高的局部对比度,整体对比度和清晰度.
实验1选用窗位窗宽算法和本文算法进行对比.验证了本文算法较之窗位窗宽算法的优越性.轮辐、轮芯和轮辋图像的映射结果如图2所示,图2 中的(a1)~(a3),(b1)~(b3),(c1)~(c3)分别为窗位窗宽算法映射结果图,其中C表示窗位值,W表示窗宽值,(d1)~(d3)为本文方法映射结果图.
图2 窗位窗宽算法和本文算法映射结果
从实验结果可以看出经过窗位窗宽算法处理后的图像整体太暗或太亮,明暗不均匀,对比度较差,给人一种视觉上的模糊感觉,且细节信息丢失严重.而经过本文算法处理后的图像能产生一种很好的视觉效果,图像整体明暗均匀,细节信息突出,图像清晰,层次感较好.由于轮毂毛坯的铸造工艺问题,在轮辐的辐窗位置有一些小的毛刺出现,如图2(d1)中的方框所示,证明本文算法真实的还原了轮毂结构信息.
实验2选用文献[3],文献[5]和文献[6]中的3种色调映射算法和本文提出的映射算法进行对比.轮毂不同部位的映射结果如图3所示,图3中的(a1),(b1),(c1)为文献[3]的映射结果图,(a2),(b2),(c2)为文献[5]的映射结果图,(a3),(b3),(c3)为文献[6]的映射结果图,(a4),(b4),(c4)为本文方法映射结果图.
轮辐图像的映射结果如图3(a1)~(a4)所示,由结果对比可知,图3(a1)、(a2)图像较暗、细节信息丢失严重,图3(a3)图像亮度有所提升,但边缘和细节的保留效果较差,而经过本文算法处理的轮辐图像整体亮度和对比度得到了极大的提高,纹理细节信息更加的丰富,辐条部位的缺陷轮廓更加的明显,图像整体上产生了更好地视觉效果.
轮芯图像的映射结果如图3(b1)~(b4)所示,由结果对比可知,图3(b1)产生了较好的整体明暗视觉效果,(b2)、(b3)整体偏亮,图像对比度较低,整体有一种蒙雾的感觉.而经本文算法处理的轮芯图像具有较高的对比度,边缘部分清楚可见,图像清晰度高.
轮辋图像的映射结果如图3(c1)~(c4)所示,由结果对比可知,本文提出的算法能够较好地还原轮辋图像的纹理细节信息,且呈现一个较好的整体明暗效果,更加适应人眼视觉系统.
图3 不同色调映射算法映射结果
为了避免受主观喜好和环境差异等影响,除了进行主观的评价外,本文还对映射后的图像进行客观评价,进一步评价算法的性能.在客观评价方面,本文选用信息熵、平均梯度来评价图片质量.信息熵,反映了图像中信息的丰富程度,表示图像的平均信息量,值越大,表明图像的信息量越大.平均梯度反映了图像中微小细节和纹理的表现能力,值越大,表明图像越清晰,细节表现越完整.
信息熵计算公式为
(16)
式中:Pt表示灰度值为t时的概率;M为图像的灰度级.
平均梯度的计算公式为
(17)
根据以上计算,得到各图像的客观评价指标如表1 和表2所示.
表1 窗位窗宽算法和本文算法客观指标
由表1 可以看出,经本文算法处理的图像信息熵和平均梯度均得到了一定的提高,使映射后的图像更加清晰.由于灰度范围的变化,窗位窗宽算法在对轮辋的处理方面略有优势,这是通过牺牲图像的整体明暗度来达到的.
从表2 可以看出本文算法极大地提高了平均梯度值,能够较好地还原图像的纹理细节信息,轮辐图像信息熵提高了1.1%~11.2%,轮芯图像信息熵提高了11.5%~28.2%,轮辋信息熵提高了1.4%~13%.针对轮毂各个部位图像,本文算法都会产生较好的视觉效果,具有较高的图像质量.
表2 不同色调映射算法客观指标
综上所述,无论与窗位窗宽算法相比,还是与传统的色调映射算法相比,本文算法都能产生一个较好的图像质量效果.
针对窗位窗宽显示算法效率低下,图像显示质量较差等缺点,本文将色调映射技术引入到高动态X射线图像的显示过程中,提出了一种将梯度域引导滤波和自适应对数压缩算子相结合的分层色调映射算法.用文献[11]中提出的梯度域引导滤波器对输入图像进行分层,分为包含大尺度信息的基础层和包含细节边缘信息的细节层,对于基础层利用自适应对数函数进行压缩,提高了图像的对比度,使图像产生了一个整体的明暗效果,对于细节层通过调整梯度域引导滤波器中参数和细节层补偿过程中的参数使映射后的图像达到一个边缘保持和细节增强的效果,使细节较好的再现.经实验验证,经过本文算法处理的轮毂高动态X射线图像能够取得较好的图像质量效果.