李咏豪
(南京理工大学 计算机科学与工程学院,江苏 南京210094)
利用鱼类进行加工得到的食品,在加工的时候已经将大部分鱼刺剔除掉,但由于人工因素,不可避免会有一些残留鱼刺仍旧在食品内,这将对食用该产品的用户带来安全隐患。目前,常用的方法是对包装食品拍摄X射线图像,然后,对X射线图像利用图像处理方法找到其中的残留鱼刺。由于X射线图像存在对比度较低,鱼刺不明显的特点,所以为准确定位鱼刺,需要对X射线图像进行图像增强,以增强视觉效果。
本文研究了常用的图像增强技术,如直方图均衡[1]、巴特沃斯高通滤波器[2]等,然后提出了对比度增强函数,该函数的参数采用像素邻域内的最大值和最小值来自适应确定,为鱼类X射线图像增强提供了较好的方法。
假定图像I的直方图表示为h(i),i=0,1,…,255,则h(i)的大小表示图像中灰度等级为i的像素的数目。如果图像偏暗,则直方图分布在灰度等级较小的区域。直方图均衡是将直方图中各等级的数值趋向于相同,使得图像的视觉效果较好。
图1 显示了一幅鱼类X射线图像,图2为利用直方图均衡化得到的结果。从图2可见,利用直方图均衡化并没有达到增强鱼刺的效果,图像的视觉效果比原图还差。这主要是由于图像中鱼身部分的颜色对比度较低,利用直方图均衡化很难将其直方图的分布趋向于一致。
图1 鱼类X射线图像
图2 直方图均衡化结果
对一幅图像而言,其能量主要集中在低频部分,高频部分主要包括图像的边缘部分和噪声。利用巴特沃斯(Butterworth)高通滤波器在频域通过保留图像中的高频成份,从而完成图像增强。Butterworth高通滤波器可以表示为:
其中,D0为截止频率,n为阶数,本文定义n=2。
具体方法是:首先对图像进行二维傅里叶(FFT)变换,将图像变换到频域;接着,将图像的频域数据与式(1)相乘;最后,通过二维傅里叶反变换得到增强结果。图3显示了对图1中的X射线图像利用Butterworth滤波的结果。
图3 Butterworth高通滤波结果
从图3可见,利用Butterworth高通滤波器对图像进行增强,得到的图像效果比采用直方图均衡化的效果要好,使得鱼刺部分更明显,缺点是背景的噪声部分也被增强。
对于鱼类X射线图像而言,需要增强的是鱼刺部分,而非鱼刺部分,包括背景、鱼肉等部分不需要增强。前面介绍的直方图均衡化和Butterworth高通滤波器都是对整幅图像进行增强运算,因此,得到的增强效果都不符合要求。
我们进一步分析如图1所示的鱼类X射线图像的特点。整幅图像可以看作由三部分组成,包括背景、鱼肉和鱼刺。背景部分由单一颜色构成,而鱼肉和鱼刺两部分的对比度较低,鱼刺部分的颜色偏暗,鱼肉部分和鱼刺部分相比,颜色偏亮。但由于鱼体厚薄和构成的不同,不同位置的鱼刺和鱼肉的灰度分布也不尽相同。比如,越靠近鱼头部分,则灰度值偏低,颜色偏暗,而靠近鱼尾处,则灰度值偏大,颜色偏亮。因此,采用固定的对比度拉伸的方法不符合当前图像的需求。
由于X射线图像内部有噪声分布,所以,我们需要对图像进行滤波。所谓图像滤波[3],就是在保持图像原样的同时,对噪声部分进行一定程度的抵制,也就是说,对图像进行滤波的结果能达到:保留图像的主要信息,包括颜色、轮廓等,同时删除图像中的噪声。常用的滤波器有均值滤波器、高斯滤波器[4]、中值滤波器和双边滤波器[5]等。本文采用高斯滤波去除图像中的噪声。高斯滤波器与均值滤波器相比,除了能去除图像中的噪声之外,还有一定的平滑作用,但其平滑带来的模糊程度要比均值滤波器低,因此,当希望在去除噪声的同时保持图像原样的时候,我们一般采用高斯滤波器对图像进行滤波。另外,高斯滤波器的好处是可以按具体图像调整方差。如果希望去噪效果大一些,则可以取较大的方差,反之则取较小的方差。总之,高斯滤波器有以下特性:
(1)高斯滤波器对各个方向的平滑程度一致。
(2)高斯滤波器属于单值函数,即像素点距离高斯核函数的中心点越远,则权值越小。
(3)高斯函数的傅立叶变换的频谱分布呈钟形,与Sa函数[6]相比,由于它是单瓣的,则不会产生振铃现象。
(4)高斯滤波器的核大小由方差σ决定。
(5)高斯函数具有可分离性,因此,二维高斯函数可以先做X方向一维卷积,再做Y方向一维卷积。
高斯滤波器其质就是一个二维高斯分布:
其中,x和y分别表示点的x坐标和y坐标。σ为标准差。如果要将式(2)用于图像滤波,由于图像是离散的二维数据,因此,需要将式(2)离散化,一般可以表示为3×3或5×5等形式。
对图像进行高斯滤波之后,将滤波后的图像再进行以下操作:
步骤1:计算图像中各像素邻域内的灰度最大值max和最小值min。
这里计算灰度最大值和最小值的目的是,由于鱼类X射线图像各部分的灰度分布不同,但鱼刺部分的灰度值一般要比其周围的非鱼刺部分的灰度值小,因此,我们通过寻找各像素邻域内的灰度最大值和最小值来自适应调整对比度参数。
步骤2:对各像素按式(3)调整其灰度值。
其中,I(i,j)表示坐标为i,j处像素的灰度值,min(i,j)表示坐标为i,j处像素邻域内的最小值,这里的邻域取11*11大小。
另外,A(i,j)为自适应参数,按式(4)计算:
本文利用所提出的图像增强方法对图1进行了实验,得到图4。
图4 本文算法实验结果
分析图2-图4利用三种方法的图像增强实验结果,可以得出以下结论:
(1)在三种方法中,直方图均衡化方法的效果最差。
(2)本文方法是三种比较方法中最优的。
(3)对于鱼类X射线图像,因其对比度低,灰度分布不均匀,并且需要将鱼刺部分进行增强,因此,需要采用本文方法,对于不同区域,按其对比度不同值,分别采用不同参数进行对比度调整。
本文针对鱼类X射线图像的图像增强问题开展了研究,对常用图像增强方法进行了分析,包括直方图均衡化、Butterworth高通滤波器。通过对这两种方法的总结,本文提出了利用对比度调整的方法进行图像增强,其中,对比度函数参数通过像素邻域内的最大值和最小值设定,并取得了较好的图像增强效果。同时,本文所提出的算法也为图像增强应用在特定场景中提供了新的思路。