matlab图像处理论文数字信号处理论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
matlab图像处理论文数字信号处理论文
基于Matlab的形态学图像处理研究[摘要]数学形态学是以几何学和集合论为基础,应用于图像处理和模式识别等领域。它具有腐蚀,膨胀,开运算,闭运算四种基本运算。本文主要探讨形态学图像处理的原理及基于MATLAB软件平台的实施方法。研究表明,利用MATLAB图像处理工具箱中的函数运用形态学方法对图像进行预处理,如形态学滤波、细化、剪裁,能够达到比较好的效果。
[关键词]Matlab 形态学图像处理预处理形态学滤波
引言
Matlab是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。在MATLAB技术环境下,利用图像处理工具箱的IPT函数可以进行可视化操作,方便快捷地对图像进行处理。
形态学图像处理思想是基于通过一小块形状或模板(结构元素)来处理图像,其方法适用于图像处理的各个方面,如基于形态学滤波器的颗粒分析,基于腐蚀和开运算的骨架抽取等。许多二值图像上的形态学运算也可以用于灰度图像的处理,但像形态学重构运算只能用于灰度图像,如峰值滤波。
一、形态学图像处理的原理
结构元素通常是0和1的矩阵表示,有时为方便起见可只显示1,结构元素的原点必须明确表明,腐蚀和膨胀的程度都由结构元素的集合控制。膨胀是在二值图像中“加长”或“变粗”的操作,膨胀过程中对结构元素的平移类似于空间卷积。腐蚀是对二值图像的对象进行“收缩”或“细化”。腐蚀和膨胀都是使结构按照一定的规则在图像区域进行平移来实现对图像的形态学处理。
(一)基本形态学操作
膨胀和腐蚀是两种最基本的形态学运算,大多数其他形态学算法都是以这两种运算为基础。
数学上,膨胀定义为集合运算,A被结构元素B膨胀,记为AB,其原理如下:
在平移结构元素的过程中,使得结构原点到所有可能的图像像素点来检测图像,当结构元素和像素值为1像素点重叠时,即结构元素击中图像,则输出1,否则输出0.
膨胀也满足交换定律,即AB=BA。在图像处理中,我们习惯令AB的第一个操作数为图像,而第二个操作数为结构元素,结构元素往往比图像小得多。
腐蚀的数学定义与膨胀类似,A被解构元素B腐蚀记为A
B,其原理同样可以表述为:
在结构元素在整个图像区域平移的过程中,结构元素的原点到所有可能的图像像素点检查图像,当结构元素与图像的前景部分完全匹配时,即结构元素适合图像,则输出1,否则输出0。
由于腐蚀和膨胀的程度由结构元素控制,选择合适的结构元素对图像进行处理从而达到改进图像性能的目的显得尤为重要。但是单独使用膨胀和腐蚀进行图像处理其用途是有限的,通过对这两种基本操作的组合可达到更有效的处理效果。
(二)膨胀和腐蚀的组合
除了膨胀和腐蚀两种基本的形态学操作外,形态学操作还包括三种常用的膨胀和腐蚀的组合操作:开运算、闭运算、击中或击不中变换。
A被结构元素B的形态学开运算可以记为A B,这种运算时A 被B腐蚀后再用B来膨胀腐蚀结果:
A B=(AB)B(1)
开运算具有平滑边界,滤掉比结构元素小的斑点、突刺,断开狭长连接的作用。
A被结构元素B的形态学闭运算记为A B,它是先腐蚀再膨胀的结果:
A B=(AB)B(2)
闭运算具有平滑边界,填充比结构元素小的缺口或洞,连接狭窄缺口形成细长弯口的作用。
通常,能够识别像素的特定形状是很有用的,击不中或击中变换对这类应用非常实用。A被B击中或击不中变换定义为A B,B是结构元素,其中B是两个结构元素,而不是单个元素。
二、Matlab中形态学图像处理实现
(一)Matlab图像处理工具箱中形态学图像处理函数
Matlab提供了20类图像处理函数,涵盖了图像处理的包括近期研究成果在内的几乎所有的技术方法,本文中我们主要介绍灰度与二值图像的形态学运算的IPT函数。
在Matlab中IPT函数strel运用各种形状和大小构建结构元素,其基本语法为se=strel(shape,parameters),其中,shape是指
定希望形状的字符串,而parameters是指定形状(如其大小)的一列参数。IPT函数imdilate执行膨胀运算。基本的调用语法为A2=(A,B),其中,A2和A是二值图像或灰度图像,B是指定的结构元素的由0和1组成的矩阵。腐蚀则用IPT函数imerode执行。开运算和闭运算在工具箱中用函数imopen和imclose实现。击中或击不中变换在IPT中用函数bwhitmiss实现,该函数语法为C=bwhitmiss(A,B1,B2),其中,C为结果,A为输入图像,B1和B2为结构元素。
(二)形态学图像处理实现
由于Matlab工具箱中含有丰富的形态学图像处理函数,使得我们在用形态学方法进行处理时能尽可能达到所需要的效果。形态学技术对图像进行预处理的过程中能够很好实现对图像的滤波、细化和裁剪,还能实现对图像边缘检测及特征提取。下面我们利用Matlab 形态学处理函数对一副不均匀亮度的米粒图像进行滤波处理,并进行阈值处理,使得米粒和背景分割开来,来比较滤波处理前后图像的分割效果。滤波处理部分源程序如下:
f=imread('rice.png');se=strel('disk',50);fo=imopen(f,se);%读入图像米粒图像,并对图像进行开运算
figure,imshow(f);%显示米粒原图像,如图(a)
figure,imshow(fo);%显示经开运算之后的图像,如图(b)
f2=imsubtract(f,fo);%米粒原图像减去经开运算后的图像,获得一副均匀背景的米粒图像
figure,imshow(f2);%显示均匀背景的米粒图像,如图(c)
接下来我们对米粒原图像(a)和均匀背景的米粒图像(c)分
别进行阈值处理,所得图像如(d)和(e),对图像中的米粒从背景中分
离出来的效果进行对比,从而证明形态学图像处理能很好对图像进行滤波,为更进一步的图像处理奠定了良好的基础。
三、结束语
Matlab具有强大的图像处理能力,有许多经典的图像处理方法,本文主要研究了形态学图像处理方法,并以米粒图像为例说明了
形态学技术能很好对图像进行预处理,为进一步图像处理能够顺利进行并达到良好的效果奠定了基础。
【参考文献】
[1]张兆礼,现代图像处理技术及MATLAB实现[M].人民邮电出版社,2001年.