2.3 植物叶片图像预处理技术
叶片特征是植物分类和鉴定的重要依据。由于植物叶片具有多样性,且其图像可能含有许多背景成分,故在分析之前对其图像进行预处理是非常必要的。由于预处理效果的好坏对叶片形状特征的提取有非常重要的影响,因此对预处理方法的选择显得非常重要。数学形态学是一项用于图像处理和模式识别的新方法,是生物学的一个分支,用来研究动物和植物的形状和结构。本书依据数学形态学对植物叶片图像开展预处理,并保证处理后的叶片图像有基本的形状和锐利边缘。
一般来说,图像的预处理过程主要包括消除噪声、去除背景和边缘检测3个环节。某些植物叶片可能由于遭受虫害或其他原因,在去除背景后叶片图像或许会出现小的孔洞,这将影响后面的操作,并导致不能准确提取叶片特征。为此,在去除背景之后,可以利用预处理模型对图像开展数学形态处理,利用数学形态学的闭运算来消除这些孔洞。
2.3.1 叶片图像获取
最常用的获取图像的方法是借助数码相机,其优点包括:不会破坏植物的群体结构,能真正测试叶片的生长规律,不依赖于统计规律。但是,该方法需要对测量系统进行校准,在开展分析运算的时候,要根据被选中参照物的实际尺寸和图像中尺寸的比例,来计算叶片的实际参数。扫描仪能够提供一定精度的图像分辨率信息,可以选取一个物体作为标准参考物,并且不需要在每幅叶片图像中加入参照物。用扫描仪扫描的方式来获取图像可以提高测量的精度,而且更方便计算。在有扫描仪的条件下可以优先选用扫描仪开展图像的获取工作。
2.3.2 叶片图像预处理
无论采用何种图像获取设备,输入的图像往往总是不能令人满意,如图像中含有噪声、目标不清晰,以及有其他物体的干扰等。从图像质量的角度来说,预处理的主要目的就是提高图像的辨识度。图像预处理是相对于特征提取、图像识别而言的一种前期处理,目的是去除噪声,对由测量仪器或其他因素所造成的退化现象进行复原。
图像去噪、增强和复原等操作都属于预处理的范畴,都可以视为对图像底层的处理工作。图像分割包括提取和描述底层处理过的图像,可更加了解图像的大小、位置和灰度级等信息,还可以修饰物体的边缘,以及对各个感兴趣的部分进行分割,以便能提取其特征。在对目标物体进行特征提取以前,最好能够准确定位,使提取出的特征不随图像平面中物体的位置、旋转角度和尺度的变化而变化,此时就需要进行目标物体的位置归一化操作。
无论是图像分割还是位置归一化操作,这些处理都属于图像识别之前的准备工作,因此也可将其视为预处理方面的内容。其实,预处理的实质就是按实际情况对图像进行适当的变换,从而突出某些有用的信息,去除或削弱无用的信息。针对不同的图像处理要求,应该选择不同的预处理方法,本节的预处理主要包括彩色图像的灰度化、图像分割、图像消噪、灰度图像的二值化、形态处理和尺寸标准化等环节。
2.3.3 彩色图像的灰度化
在RGB模型中,如果R=G=B,则彩色表示一项灰度颜色,其中R=G=B的值叫灰度值,灰度图像中的每个像素只需一个字节来存放灰度值(又称强度值、亮度值),灰度范围为0~255。彩色图像灰度化等方法包括分量法、最大值法、平均值法和加权平均法等4种。
(1)分量法。彩色图像中R、G、B 3个分量的亮度是3个灰度图像的灰度值。这种方法有3种灰度图可供选择,分别是R分量灰度图、G分量灰度图和B分量灰度图,可以根据需要选择其中的任何一项。
(2)最大值法。把彩色图像中3个分量的最亮者确定为灰度值。
(3)平均值法。把彩色图像中3个分量的亮度平均值确定为灰度值。
(4)加权平均法。对R、G、B 3个分量进行加权平均,能够获得更合理的灰度图像。
2.3.4 图像分割
在对图像的研究和应用过程中,人们往往只对图像中的某些部分感兴趣。为了辨识和分析植物叶片图像中的特定目标,需要将特定目标从植物叶片图像中提取出来,图像分割的过程就是提取目标区域的过程。提取出的这部分图像常称为目标或前景(其他部分称为背景),它们一般对应图像中特定的、具有独特性质的区域。
本书的第3章,将介绍一些图像分割方法,为图像的特征提取和识别工作做好准备。
2.3.5 图像消噪
在实际应用过程中,任何一种图像都可能存在噪声,它们可以在传输过程中产生,也可以在量化过程中产生。与此类似,在采集过程中植物的叶片图像会产生各种不同的噪声,因此一定要对图形消噪处理。消噪的目的是,在尽可能保持原始信号主要特征的同时,除去信号中的噪声。图像中的噪声往往和图像信息交织在一起,如果滤除不当,将使图像的质量下降。因此,如何既能滤除掉图像中的噪声,又能尽量保持图像的细节,是图像消噪工作的关键内容之一。
常用的图像消噪方法如下:
(1)中值滤波。中值滤波是常用的非线性滤波方法,也是图像处理技术中最常用的预处理技术。它可以克服线性滤波器给图像带来的模糊问题,在有效清除颗粒噪声的同时,又能保持良好的边缘特性,从而获得较满意的滤波效果,特别适合于去除图像中的椒盐噪声。其实现原理如下:
将某个像素邻域中的像素按灰度值进行排序,然后选择该序列的中间值作为输出的像素值。其具体的操作过程是:首先,确定一个以某个像素为中心点的领域,一般为方形领域(如3×3、5×5的矩形领域)。其次,对领域中各个像素的灰度值加以排序。假设其排序为(邓继忠,2005)X1≤X2≤X3≤…≤Xn。最后,取排好的序列的中间值Y作为中心点像素灰度的新值。
这里的邻域通常被称为窗口。当窗口在图像中上下左右移动时,利用中值滤波算法可以很好地对图像进行平滑处理操作。当椒盐噪声密度较小时,尤其是孤立的噪声点,用中值滤波法的效果非常好;但在椒盐噪声密度增加时,中值滤波法的消噪能力将下降。虽然可以采用多轮迭代方式对滤波后的图像再次使用中值滤波法加以处理,但会造成更大的细节损失。
(2)均值滤波。均值滤波是典型的线性滤波算法,其采用的主要方法为邻域平均法(王侯芳等,2009)。该方法在处理当前像素点(x,y)时,先选择一个模板,该模板由其近邻的m个像素组成,在求模板里所有像素的均值后,再把该均值赋予当前像素的算术平均值,作为邻域平均处理后的灰度值。
该方法运算简单,对高斯噪声具有非常强的消噪能力。均值滤波相当于低通滤波器,这种低通性能在平滑噪声的同时,会模糊信号的细节和边缘,即在消除噪声的同时也会对图像的高频细节成分造成破坏,使图像变得模糊。均值滤波对高斯噪声、乘性噪声的抑制效果比较好,但对椒盐噪声的抑制效果不好。为了改善均值滤波的细节对比度不好、区域边界模糊等缺陷,常用门限法来抑制椒盐噪声和保有图像的细小纹理,用加权法来改善图像的边界模糊问题。
(3)维纳滤波。维纳滤波法最早由维纳在1942年提出,是一项对退化图像开展恢复处理的常用算法,也是最早为人们所熟知的线性图像复原方法(王侯芳等,2009)。其设计思路是用输入信号乘以响应后得到的实际输出,与期望输出的均方误差为最小。其数学形式比较复杂:
其中,Sn(u,v)表示噪声的功率谱,Sf(u,v)表示未退化图像的功率谱。
在开展实际处理时,往往不知道噪声函数Sn(u,v)和Sf(u,v)的分布情况,因此在实际应用时多采用如下公式:
其中,K是一个预先设定的常数。维纳滤波法对高斯噪声、乘性噪声都有明显的抑制作用,与中值滤波法和均值滤波法相比,维纳滤波法对这两种噪声的抑制效果更好,缺点是容易失去图像的边缘信息。维纳滤波法对椒盐噪声几乎没有抑制作用。
(4)高斯滤波。这是一种根据高斯函数的形状来选择权值的线性平滑滤波器。由于二维高斯函数具有旋转对称性,因此可以保证滤波时各方向的平滑程度相同,对于滤除服从正态分布的噪声十分有效。
在实际计算过程中,也可将高斯权系数直接与图像信息做模板卷积运算,由于高斯滤波器也是线性滤波器,因此在使用高斯滤波后图像也会变得模糊。
(5)双边滤波器。双边滤波的概念由Tomasi和Manduchi提出,该方法在处理相邻各像素的灰度值时,不仅考虑到了几何位置上的邻近关系,也考虑到了灰度上的相似性,通过对二者的非线性组合自适应滤波后得到平滑图像。该方法是在高斯滤波的基础上提出的,主要是针对高斯滤波中将高斯权系数直接与图像信息做卷积运算进行图像滤波的原理,将高斯权系数优化成高斯函数和图像灰度值信息的乘积,再将优化后的权系数与图像信息作卷积运算。因此,双边滤波的权系数是随着原始图像边缘信息的变化而变化的,这样就能在滤波的同时,考虑到图像中的边缘信息,使图像在正常高斯滤波后变得很模糊的边缘信息得以保持清晰且图像边缘更加平滑。
此外,梯度倒数加权平均法滤波、最大均匀性平滑滤波、低通空域滤波、Sigma平滑滤波和卡尔曼滤波等也是一些常用的滤波算法(邓继忠,2005)。
由于扫描的过程是比较理想化的,因此产生的噪声大部分是随机噪声,同时会带有少量的椒盐噪声。如果目的只是去除噪声干扰,而不是刻意让图像变得模糊,则中值滤波是比较好的选择。中值滤波可以非常好地抑制图像中的脉冲干扰。同时,中值滤波选择的窗口尺寸将直接影响滤波的效果。多次实验表明,中值滤波器的窗口选3×3型时效果最好,模糊程度最低。
2.3.6 灰度图像的二值化
通常,对叶片图像开展二值化的目的是将叶片和其背景分开并形成二值图像。由于叶片图像的颜色差异问题,灰度图像很难使用均匀灰度阈值进行分割,因此我们必须为每张图像设置各自的灰色阈值,即每张叶片图像的二值化阈值是不同的。
(1)迭代阈值选择法。迭代阈值选择法是植物叶片研究领域一种比较常用的计算灰度门限的方法,具体步骤如下:
第1步,求出整幅图像的最大灰度值和最小灰度值,分别记为Ta和Tb,令初始灰度门限T0=(Ta+Tb)/2;
第2步,根据灰度门限T0将图像分割为前景和背景,分别求出两者的平均灰度值Z1=(Ta+T0)/2,Z2=(T0+Tb)/2;
第3步,据此求出新灰度门限T1=(Z1+Z2)/2;
第4步,若T1=T0,则T0为灰度门限,否则用T1代替T0重复上一步骤继续迭代计算,将图像分割为新前景和背景并求出新的平均灰度值,再根据新的平均灰度值求新灰度门限T2,以此类推,一直到Tn=Tn-1,则迭代计算停止,Tn为所求的灰度门限。
(2)最大类间方差法。该方法可以尽量小地改变灰度图像的面积。具体步骤如下:
第1步,选择一个阈值t,将图像的像素分为c1和c2两组,像素数为w1和w2。计算两组的灰度平均值和方差,分别为m1和m2、σ21和σ22。
第2步,计算灰度平均值为
组内方差为
组间方差为
第3步,改变t值,使最大,此时的t值即为分割阈值。
(3)聚类分析。对于植物叶片而言,背景像素之间、叶片像素之间比背景和叶片之间有更多的相似性。聚类分析的算法原理如下(靳华中,2011):
第1步,每个样本都被扫描,每一个样本基于它与扫描样本的距离,被归类以前的类或生成一个新的类。
第2步,按照类间距离对第一步中的各类进行合并。
(4)最佳直方图熵方法。通过分析图像灰度直方图的熵,找出最佳阈值(吴玲艳,1993)。对于灰度范围为{0,1,…,L-1}的图像,设分割阈值为t,则目标O和背景B服从两个不同的概率分布:
根据香农熵的概念,定义与这两个概率分布相关的熵为
式中:
Kapur定义准则函数Ψ(t)为H(O)和H(B)之和,即有
使Ψ(t)最大的灰度级t就是所求出的最优阈值T,即T=maxΨ(t),(0<t<L-1)。
如果采用的叶片图像的背景都很简单,则建议采用一项更简单的阈值分割的方法——可以任意设定一个阈值以达到想要的二值化效果,并且它不受算法的限制。
注意:在以上方法都不能取得理想效果的时候,可以选择手动取值。
2.3.7 形态学处理技术
如果所选取的叶片曾遭受过虫害而导致在其内部存在一些孔洞,则将影响叶片特征参数的精确计算。因此,必须对去除背景后的图像开展进一步处理,以消除孤立噪声点和叶片内部孔洞,得到完整、精确的二值化叶片图像。针对上述问题,可以采用数学形态学的方法进一步处理图像。
数学形态学基于对图像形态的特征开展分析,其定义了两种基本的变换,即腐蚀(Erosion)和膨胀(Dilation),形态学的其他运算都由这两种基本运算复合而成。
腐蚀表示用某个结构元素对一幅图像开展“探测”,找出在图像内部可以放下该结构元素的区域。定义如下:
设f为一灰度图像,h为一个灰度结构元,则有
其中!代表腐蚀运算。
膨胀是腐蚀运算的对偶运算。定义
其中"代表膨胀运算。
可以采用数学形态学里的闭运算去除叶片图像上的孔洞,闭运算定义为一个膨胀运算紧接一个腐蚀运算,也就是说,先对去除背景的二值化叶片图像进行膨胀运算,再进行腐蚀运算,经过多次处理之后,即可消除叶片图像上的孔洞。同时,为了消除图像中的孤立噪声点,可以使用数学形态学中的开运算——对图像先进行腐蚀运算,再进行膨胀运算,多次处理之后,即可消除图像中的孤立噪声点。下面将对腐蚀、膨胀、闭运算和开运算做进一步介绍。
(1)腐蚀。集合A被集合B腐蚀,表示为AΘB,其定义为
其中,A是被处理的集合,B是结构元素,对于任意一个在A内的像素点x,Bx包含于A,则该像素点x被保留。所有被保留的x点的集合就是A被B腐蚀的结果,见图2-4(b)。
不同的“探头”腐蚀同一个输入图像得到的结果不一定相同。腐蚀还有另外的表达方式:
输入图像并平移b(b属于b结构单元),然后计算所有平移的交点,得到腐蚀图像。二次腐蚀可以去除目标的边界点。如果结构单元采用3×3模块,则称为简单腐蚀。
(2)膨胀。膨胀的定义是:把结构元素S平移x后得到Sx,在x被Sx击中的情况下,记下x点。所有满足上述条件的x点组成集合X,是被S膨胀的结果,表示为
其中,A是被处理的集合,B是结构元素,对于任意一个在A内的像素点x,Bx包含于A,则该像素点x被保留。所有被保留的x点的集合就是A被B腐蚀的结果。
将目标区域边缘的背景点集成到目标区域就称为膨胀。经过此操作后,目标区域将增加相应的点。当两个单独的结构元素接近目标区域的距离足够短时,这两个目标区域的扩张可能会融合在一起。
因此,通过膨胀运算之后,分割目标区域里的空洞可以被填充。膨胀还有一项表达方式:
根据这种表达,膨胀运算可以通过结构元素B来移动图像A,并计算其非集(李然,2008)。见图2-4(c)。
图2-4 图像的形态学处理方法
(3)闭运算。先膨胀后腐蚀的运算叫作闭运算。一般来说,闭运算能够有效地填充物体内部细小的孔洞,弥合小裂缝,而总的位置和形状不变。闭运算的符号表示为A·B,表示用B对A开展闭运算(李然,2008)。其定义为
闭运算相当于有一个小圆盘在目标区域的外边缘滚动,其本质是目标区域的外部滤波,它只对图像内部的锐角开展磨削。
(4)开运算。先腐蚀后膨胀的运算称为开运算。一般来说,开运算可以有效消除图像中的细小物体、毛刺和小桥(即连通两块区域的小点),能在纤细连接点处分离物体,能够平滑较大物体的边界但不明显改变物体的边界。开运算的符号表示为A○B,表示用B对A开展开运算,其定义为
通过对图像内部结构要素的并计算,对每一个都可以填入标记的位置,计算结构元素到每个标记位置的平移“并”,则得到开运算结果。如果在一个矩形上做开运算操作,可以使矩阵内角变圆,这种结果可以通过滚动矩形内的圆盘得到,并计算可以填充的矩形。
如图2-5所示,这是开、闭运算使用举例。除二值腐蚀和膨胀、二值开闭运算以外,还有骨架抽取、极限腐蚀和灰值形态学梯度等多种形态学处理方法,这里不再详细介绍。
图2-5 开、闭运算使用举例
2.3.8 尺寸标准化
如果植物叶片的大小不一,在特征提取时便会造成其维数不同,导致无法识别植物的类别。在使用扫描仪时,由于获得的叶片图像较大,使得计算量非常大,故需要对图像尺寸进行归一化处理。例如,尺寸为400×400像素大小,这样既可以尽可能地保留叶片图像信息,又能使每个叶片的最小尺寸大于归一化尺寸。因此在归一化时只需要进行缩小变化(放大变化会使图像变得模糊,并且可能会出现图像中原本没有的特征)。经过缩小变化所产生的图像,其中有的像素可能在原图像中找不到相应像素,此时一般需要进行插值处理。同时,有些植物叶片的柄部具有凹槽并且向某一方向倾斜,会影响实验效果,可以对扫描获取的叶片图像进行左右转置处理(水平镜像),以消除凹槽造成的影响。