1、MTALAB 在数字图像处理中的应用摘 要:研究数学形态学的二值形态学、灰度形态学的腐蚀、膨胀、开启和闭合四种基本运算,利用这 4 种基本运算消除图像噪声。本文在总结和分析了数学形态学的基本理论及其应用的基础上,用 MATLAB 编程实现消除图像噪声。仿真结果表明,本文应用二值形态学和灰度形态学去除图像噪声具有较好的效果,并有一定的实用性。关键词:形态学;图像噪声;腐蚀;膨胀Application of MATLAB to Digital Image ProcessingAbstract:This paper studies the four basic operations of binar
2、y morphology, gray-scale morphology of mathematical morphology: dilation, erosion, opens and close, and then combines these basic operations to remove image noise. This paper based on the summing-up and analysis of the basic theory and application of mathematics morphology, removing image noise by M
3、ATLAB program. Simulation results are given to demonstrate that the binary morphology and gray-scale morphology have good effect of noise removing and these methods have their practicability.Key words:morphology; image noise; erosion; dilation1 引言随着计算机技术的发展,图像及信号处理技术越来越为大众所需求。经典的信号处理方法主要是基于线性系统的理论、传
4、统的信号与系统的概念及Fourier 分析,并广泛地运用于不同的科学与技术领域中。然而,对于图像的形态特征和几何结构等非线性因素的分析和描述却由于系统的线性特征而受到限制。近几十年发展起来的数学形态学 1从理论和方法上弥补了这一缺憾,数学形态学不仅提供了描述和分析图像几何及形状特征的多种技术和方法,同时它对于经典的信号处理技术也产生了极大的影响并扩展了原有的技术。基于数学形态学的图像处理技术是一种采用集合的概念表示图像、非线性叠加方式描述图像的非线性系统技术,称之为形态系统 2,它广泛地应用于生物医学和电子显微镜图像的分析以及数字图像处理和计算机视觉等领域,并已发展成为一种新型的图像处理方法和
5、理论。用于图像处理的形态系统,具有完备的结构和理论体系,是进行非线性性态分析和描述的有力工具。2 形态学的相关理论2.1 图像的表示方法如同信号处理中线性时不变系统的建立和描述基于信号的多频表示一样,形态系统的描述和分析方法的建立则是基于图像的集合表示以及相应的集合变换。用 R 和 Z 分别表示实数集合和整数集合,E=R d 或 Zd(d=1、2、)分别表示连续的或离散的 d 维空间,则一个 d 维图像可表示为 E 上的一个函数,其取值范围为 R 或 Z。如果函数仅取两个不同的值,则图像可用 E 中的集合表示。如二值图像可表示为取值为 1 和 0 的函数 ,图像的前景可表示为)(xf,背景可表
6、为余集 ,或简单地用 X 的特征函)(:xfX 0:Xc数来表示。对于多值(灰度)图像 可以通过阀值变换 1,2 获得其二值图像,)(xf采用阀值的方法还可以实现对于灰值图像的集合表示。为此,若引入图像的阀集:)(xf ,)(:axffTa这里幅值 a 取值于 R 或 Z,取决于 f(x)是模拟还是数字图像。利用阀集 可)(fTa重构图像 。如果引入 的特征函数)(:sup)(fTxxfa)(fTa则 即给出了一个二值图像,并且有 。,)(,01)(fTfaaa 1)(:sup)(xfaxf2.2 基本的形态变换数学形态学有 4 种基本的形态运算,即腐蚀(Erosion)、膨胀(Dilatio
7、n)及开(Opening)、闭(Closing)运算,基于这 4 种基本的形态运算可以建立具有各种功能的形态变换和实用算法,它们构成了数学形态学应用的基础。在 E 空间的代数结构下,引入集合 的平移: 。对EX:XxbXb于二值图像 X 及具有简单形状和小尺寸的紧集 B(如 d 维球体) ,将:, (1)BbBbX分别称为 B 对 X 的腐蚀和膨胀,集合 B 则称为结构元素(StructuringElement),将腐蚀和膨胀的复合运算: ,BX)(2)X)(分别称为 B 对 X 的开、闭运算.以上基于二值图像的运算称为二值形态变换或二值形态滤波。运用阀值或本影的方法,在二值形态变换 3的基础
8、上可以获得多值图像的形态变换。运用结构元素 B 对多值图像 的所有阀集合 进)(xf )(fTa行膨胀产生集合簇 ,以此作为阀集合所确定的函数称为结构元素 BfTa)(对多值图像 的膨胀:xf)(:sup)(BfTxaB(3)其等价表示为:)(s)(yfxfBy(4)类似地,结构元素 B 对多值图像 的腐蚀是以 为阀集合的函数:xf BfTa)()(:sup)(BfTaxf (5)其等价表示为:)(inf)(yxBfBy(6)这样定义的 , 可以理解为多值图像 在点 x 的 B 窗口f)(f内的局部最大值和局部最小值,结构元素 B 还可以理解为一个控制器,控制对图像进行膨胀或腐蚀的范围。以(3
9、) 式和(5) 式为基础可以引入结构元素 B 对多值图像 的开、闭运算:: , 运用多值图像)(xf ff)(ff)(g(x)作为结构元的多值形态运算可以通过本影的方法加以表示,即: , ,)(),(:sup)( gUfaxgf )(),(:sup)( fUaxf它们的等价形式为: ,)()sup)(yxgfxgfy特别地,当 为平坦结构元时,)(inf)(yxgf )(,0gspt则有: , 。类似地,可以引入基于xgsptyf)(uxgsptyfxf)(in)(多值图像的形态开、闭运算: , 。综上所ff gff)(述,基于阀集合和本影的多值形态变换是以结构元或其紧支集为窗口的局部极大和极
10、小运算,它是一种非线性运算,也是形态学的基本运算。在图像分析中,极大和极小运算对应于结构元关于图像的最大和最小相关程度的一种描述。2.3 常用形态学操作函数1、dilate 函数该函数能够实现二值图像的膨胀操作,有以下形式:BW2=dilate(BW1,SE)BW2=dilate(BW1,SE,n)其中:BW2=dilate(BW1,SE)表示使用二值结构要素矩阵 SE 队图像数据矩阵BW1 执行膨胀操作。输入图像 BW1 的类型为 double 或 unit8,输出图像 BW2的类型为 unit8。BW2=dilate(BW1,SE,n)表示执行膨胀操作 n 次。2、erode 函数该函数能
11、够实现二值图像的腐蚀操作,有以下形式:BW2= erode(BW1,SE)BW2= erode(BW1,SE ,n)其中:BW2= erode(BW1,SE)表示使用二值结构要素矩阵 SE 队图像数据矩阵BW1 执行腐蚀操作。输入图像 BW1 的类型为 double 或 unit8,输出图像 BW2的类型为 unit8。BW2= erode(BW1,SE,n)表示执行腐蚀操作 n 次。3、bwmorph 函数该函数的功能是能实现二值图像形态学运算。它的格式如下: BW2=bwmorph(BW1,operation) BW2=bwmorph(BW1,operation,n)其中:对于格式,bwm
12、orph 函数可对二值图像 BW1 采用指定的形态学运算;对于格式,bwmorph 函数可对二值图像 BW1 采用指定的形态学运算 n 次。operation 为下列字符串之一:clean:除去孤立的像素(被 0 包围的 1)close:计算二值闭合dilate:用结构元素计算图像膨胀erode:用结构元素计算图像侵蚀4、imclose 函数该函数功能是对灰度图像执行形态学闭运算,即使用同样的结构元素先对图像进行膨胀操作后进行腐蚀操作。调用格式为:IM2=imclose(IM,SE)IM2=imclose(IM,NHOOD)5、imopen 函数该函数功能是对灰度图像执行形态学开运算,即使用同
13、样的结构元素先对图像进行腐蚀操作后进行膨胀操作。调用格式为:IM2=imopen(IM,SE)IM2=imopen(IM,NHOOD)3 用 MATLAB 编程实现图像去噪3.1 二值形态学消除图像噪声用二值形态学方法对图像中的噪声进行滤除的基本思想 4是:使用具有一定形态的结构元素去度量和提取图像中的对应形状,以达到消除图像噪声的目的。下面是二值形态学消除图像噪声的一个实例。首先将 tire.tif 图像加入椒盐噪声,这种噪声前面已经介绍过,它在亮的图像区域内是暗点,而在暗的图像区域内是亮点,再对有噪声图像进行二值化操作,再对有噪声图像进行开启操作,由于这里的结构元素矩阵比噪声的尺寸要大,因
14、而开启的结果是将背景上的噪声点去除了,最后对前一步得到的图像进行闭合操作,将轮胎上的噪声点去掉了。下面是算法实现的程序代码:I1=imread(tire.tif); %读灰度图 tire.tifI2=imnoise(I1,salt %在图像上加入椒盐噪声figure,imshow(I2) %显示加椒盐噪声后的灰度图像I3=im2bw(I1); %把加椒盐噪声后的灰度图像二值化figure,imshow(I3) %显示二值化后的图像I4=bwmorph(I3,open); %对二值噪声图像进行二值形态学开运算figure,imshow(I4) %显示开运算后的图像I5=bwmorph(I4,cl
15、ose); %对上述图像进行形态学闭运算figure,imshow(I5) %显示最终处理后的图像3.2 灰度形态学法消除图像噪声灰度形态学在消除图像噪声应用方面与二值形态学大致相同,但由于灰度形态学都是针对灰度图像进行的,因此它也有自己的特点。对灰度图像平滑处理的一种方法是将图像先进行开运算再进行闭运算处理,则处理结果将去除或消减图像中的亮斑和暗斑,图像中的噪声被滤除。同样,我们也可以采取先闭再开的方法来获得图像平滑的效果。算法实现的程序代码如下:I1=imread(tire.tif); %读灰度图像 tire.tiffigure,imshow(I1); %显示图像I2=imnoise(I1
16、,salt %在灰度图像加入椒盐噪声figure,imshow(I2); %显示加噪声后的图像SE = strel(disk,2); %创建一个半径为 2 的圆盘结构元素SEJ = imopen(I2,SE); %用结构元素 SE 对椒盐噪声图像进行形态学开操作figure, imshow(J,) % 显示图像BW = imclose(J,SE); %用结构元素 SE 对椒盐噪声图像进行形态学闭操作figure, imshow(BW) %显示处理后的图像4 MATLAB 仿真及结果分析4.1 二值形态学消除图像噪声图 1 带椒盐噪声的图像 图 2 二值化图像图 3 二值开操作运算后的图像 图
17、4 二值闭操作运算后的图像上图为用二值形态学运算消除图像噪声的仿真结果。二值形态学运算消除图像噪声比较简单,它主要是利用二值闭操作和二值开操作的性质,再选择适当的顺序处理图像噪声就行。这里采用的是先对待处理图像进行开操作再进行闭操作,运算后能有效地消除了图像噪声。图 1 是带椒盐噪声的图像。图 2 是对原图像二值化后的结果图。图 3 是开运算结果图。图 4 是闭运算结果图。从图 3 和 4 可以看出开操作后图像的噪声点减少了,再对其进行闭操作后噪声点基本上都消除。由此看出,二值形态学能消除图像噪声,但因为这过程对图像进行了二值变换操作,运算后图像没法恢复原来的灰度图像。所以,二值形态学消除噪声
18、一般都应用在不需要恢复图像原来形态的图像处理中。4.2 灰度形态学法消除图像噪声图 5 原灰度图像 图 6 加入椒盐噪声的图像图 7 灰度开运算后的图像 图 8 灰度闭运算后的图像上图为用灰度形态学法消除图像噪声的仿真结果。图 7 是使用半径为 2 的圆盘结构元素对图 6 进行灰度开运算结果图。图 8 是用相同结构元素对图 6 继续进行灰度闭运算结果图。从图 7 和图 8 可以看出,对噪声图像进行灰度开运算后把轮胎周围的噪声点消除掉了,再对图像进行灰度闭运算后把轮胎内部周围的噪声点消除掉了。由上图还可以看出,灰度形态学除噪的优点是除噪之后图像依然是灰度图像,除噪效果较好,但不足之处是除噪后原图
19、像中的有些细节被损失掉了。5 结论本文主要运用数学形态学的两种方法实现对图像噪声的消除,用 matlab 实现仿真编程,结果表明,形态学在消除图像噪声中的效果不错,除噪效果可以用 MATLAB 仿真结果来验证。虽然应用形态学消除图像噪声在理论上趋于完备,但是在实际应用中仍有很多地方步完善,还需要我们不断努力创新。参考文献1HenkJAMHeijmans.MorphologicalImageOpera-torsM.Boston:AcademicPress,19942MaragosP.Morphologicalsystemsformultidimen-sionalsignalprocessingJ.ProcIEEE,1990,78:6907103JohnGoutsias.Morphologicalrepresentationofdis-creteandbinaryimagesJ.IEEETransonsignalpro-cessing,1991,39(6):136913784董言治,周晓东,娄树理柔性数学形态学在红外图像边缘检测中的MATLAB 实现J光电与控制, 2004,11(4):34-39