二值图像的处理程序设计—形态学处理汇编

上传人:今*** 文档编号:108281487 上传时间:2019-10-23 格式:DOCX 页数:15 大小:1.03MB
返回 下载 相关 举报
二值图像的处理程序设计—形态学处理汇编_第1页
第1页 / 共15页
二值图像的处理程序设计—形态学处理汇编_第2页
第2页 / 共15页
二值图像的处理程序设计—形态学处理汇编_第3页
第3页 / 共15页
二值图像的处理程序设计—形态学处理汇编_第4页
第4页 / 共15页
二值图像的处理程序设计—形态学处理汇编_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《二值图像的处理程序设计—形态学处理汇编》由会员分享,可在线阅读,更多相关《二值图像的处理程序设计—形态学处理汇编(15页珍藏版)》请在金锄头文库上搜索。

1、沈阳理工大学数字图像处理程序设计摘 要数学形态学兴起于20世纪60年代,是一种新型的非线性算子,它着重研究图像的几何结构,由于视觉信息理解都是基于对象几何特性的,因此它更适合视觉信息的处理和分析,这类相互作用由两种基本运算腐蚀和膨胀及它们的组合运算来完成。数学形态学为在图像识别、显微图像分析、医学图像、工业图像、机器人视觉方面都有十分重要的应用。本设计运用MATLAB把一幅图像二值化,并进行膨胀、腐蚀、开启、闭合等处理,这些算法分别能够使图像边缘扩大物体中的空洞;边缘缩小消除小且无意义的物体;保持原目标的大小与形态的同时,填充凹陷,弥合孔洞和裂缝;用来消除小物体、在纤细点处分离物体、平滑较大物

2、体的边界的同时并不改变其面积。关键字:膨胀;腐蚀;开启;闭合目录1设计目的与要求11.1设计目的11.2设计要求12 MATLAB平台22.1 MATLAB简介22.2 MATLAB的应用23 设计原理33.1膨胀33.2腐蚀33.3开启与闭合53.4阈值54设计方案64.1设计思想64.2设计流程65代码实现76仿真与结果分析86.1仿真66.2结果分析11结论12参考文献13II二值图像的处理程序设计形态学处理1设计目的与要求1.1设计目的(1)了解膨胀、腐蚀、开启、闭合四种方法对二值图像的影响,及它们在数字图处理中的应用。(2)进一步熟悉MATLAB运用和图像处理的知识,加深对图像二值化

3、处理1.2课程设计要求利用所学的数字图像处理技术,自己设计完成对一副灰度图像的形态学运算(膨胀、腐蚀及其组合运算);对一副灰度图像的分块处理运算。具体要求: (1)熟悉和掌握MATLAB程序设计方法; (2)学习和熟悉MATLAB图像处理工具箱;(3)学会运用MATLAB工具箱对图像进行处理和分析;(4)能对图像jpg格式进行打开、保存、另存、退出等功能操作;(5)利用所学数字图像处理技术知识、MATLAB软件对图像进行腐蚀,膨胀,开运算,闭运算。(6)在程序开发时,清楚主要实现函数目的和作用,需要在程序书写时做适当注释说明,理解每一句函数的具体意义和使用范围;(7)每个程序都必须做到功能仿真

4、成功,运行结果以图片的形式粘贴到报告中。2 MATLAB平台2.1MATLAB简介Matlab是当今最优秀的科技应用软件之一,它一强大的科学计算与可视化功能,简单易用,开放式可扩展环境,特别是所附带的30多种面向不同领域工具箱支持,使得它在许多科学领域中成为计算机辅助设计与分析,算法研究和应用开发的基本工具盒首选平台1。2.2MATLAB在图像处理中的应用MATLAB7.x提供了20类图像处理函数,涵盖了图像处理包括近期研究成果在内的几乎所有的技术方法,是学习和研究图像处理的人员难得的宝贵资料和加工工具箱。这些函数按功能可分为图像显示、图像文件IO、图像算术运算、几何变换、图像登记、像素值与统

5、计、图像分析、图像增强、线性滤波、线性二元滤波设计、图像去模糊、图像变换、邻域与块处理、灰度与二值图像的形态学运算、结构元素创建与处理、基于边缘的处理、色彩映射表操作、色彩空间变换及图像类型与类型转换2。Matlab数字图像处理工具箱函数包括以下几类:(1)图像显示函数;(2)图像文件输入、输出函数;(3)图像几何操作函数;(4)图像像素值及统计函数;(5)图像分析函数;(6)图像增强函数;(7)线性滤波函数;(8)二维线性滤波器设计函数;(9)图像变换函数;(10)图像邻域及块操作函数;(11)二值图像操作函数;(12)基于区域的图像处理函数;(13)颜色图操作函数;(14)颜色空间转换函数

6、;(15)图像类型和类型转换函数3。3 设计原理3.1膨胀将于物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程,利用它可以填补物体中的空洞,以及消除包含在目标区域中的小颗粒噪声。膨胀处理是腐蚀处理的对偶4,可定义如下:膨胀是以得到B的相对与它自身原点的映像并且由z对映像进行移位为基础的。A被B膨胀是所有位移Z的集合,这样,和A至少有一个元素是重叠的。我们可以把上式改写为: 结构元素B可以看作一个卷积模板,区别在于膨胀是以集合运算为基础的,卷积是以算术运算为基础的,但两者的处理过程是相似的5。 用结构元素B,扫描图像A的每一个像素; 用结构元素与其覆盖的二值图像做“与”操作; 如果都为

7、0,结果图像的该像素为0。否则为1; 如图3.1所示:图3.1膨胀由图3.1可知,膨胀(dilation)可以看做是腐蚀的对偶运算,其定义是:把结构元素B平移a后得到Ba,若Ba击中X,我们记下这个a点。所有满足上述条件的a点组成的集合称做X被B膨胀的结果6。X是被处理的对象,B是结构元素,不难知道,对于任意一个在阴影部分的点a,Ba击中X,所以X被B膨胀的结果就是那个阴影部分。阴影部分包括X的所有范围,就象X膨胀了一圈似的,这就是为什么叫膨胀的原因。同样,如果B不是对称的,X被B膨胀的结果和X被Bv膨胀的结果不同。让我们来看看实际上是怎样进行膨胀运算的。在图中,左边是被处理的图象X(二值图象

8、,我们针对的是黑点),中间是结构元素B。膨胀的方法是,拿B的中心点和X上的点及X周围的点一个一个地对,如果B上有一个点落在X的范围内,则该点就为黑;右边是膨胀后的结果。可以看出,它包括X的所有范围,就象X膨胀了一圈似的。3.2腐蚀 是一种消除边界点,使边界点向内部收缩的过程,可以用来消除小且无意义的目标物。如果两目标物间有细小的联通,可以选取足够大的结构元素,将细小连通腐蚀掉。可定义如下:对Z中的集合A和B,B对A进行腐蚀的整个过程如下:(1)用结构元素B,扫描图像A的每一个像素;(2)用结构元素与其覆盖的二值图像做“与”操作;(3)如果都为1,结果图像的该像素为1。否则为0;如图3.2所示:

9、图3.2腐蚀由图3.2可知, X是被处理的对象,B是结构元素。不难知道,对于任意一个在阴影部分的点a,Ba 包含于X,所以X被B腐蚀的结果就是那个阴影部分。阴影部分在X的范围之内,且比X小,就象X被剥掉了一层似的,这就是为什么叫腐蚀的原因。值得注意的是,上面的B是对称的,即B的对称集Bv=B,所以X被B腐蚀的结果和X被Bv腐蚀的结果是一样的。如果B不是对称的,让我们看看图6.9,就会发现X被B腐蚀的结果和X被Bv腐蚀的结果不同。3.3开启与闭合先腐蚀再膨胀为开启运算;先膨胀再腐蚀为闭合运算。3.4阈值阈值就是一个分水岭,比它小的灰度值变为0,比它大的为255.本设计中将运用graythresh

10、(函数)来求阈值。此函数采用的是最大类间方法来求得合适的阈值。此阈值选取方法首先选取图像的灰度范围的中值作为初始值T0,把掩饰图像中全部像素分成前景和后景两大类,然后分别对其进行积分并将结果取平均以获得一新的阈值,并按此阈值将图像分成前景与背景。如此反复下去知道阈值不再变化时就是所求阈值。4设计方案4.1设计思想 学的研究对象是二值图像,所以要先把彩色图像转换成二值图像,然后再运用MATLAB平台将一个拥有一定形态的结构元素区度量和提取图像中对应形状以达到对图像的分析和识别目的7。4.2设计流程 先提取原图像,再将其二值化以便于后续处理。将二值化后的图像经过四种基本运算后分析他们的用处。处理流

11、程如图4.1所示:图4.1形态学处理流程图由图4.1可知,本设计运用函数imread()调用原图像TT.jpg,再利用函数graythresh()与函数im2bw()将它二值化,此时图像只有黑白二色。之后分别用函数imdilate()进行膨胀算法使图像过打一圈;用imerode()进行腐蚀算法使图像缩小一圈;用函数bwmorph(sw,open)进行开启运算使图像总大小不变阴影变大;用函数bwmorph(sw,close)进行闭合运算使图像总大小不变阴影变小。5代码实现(1)使用函数imread()读取原图,并使用函数graythresh()与函数im2bw()使其二值化,其核心代码如下:P=

12、imread(D:TT.jpg); %提取图像level = graythresh(P); %得到合适的阈值TP = im2bw(P,level); %二值化(2)运用函数strel()设置结构元素并利用函数imdilate()与函数imerode()分别进行膨胀与腐蚀运算,其核心代码如下:PY = strel(square,3); %设置膨胀结构元素PZ = imdilate(TP,PY); %膨胀FY = strel(disk,3); %设置腐蚀结构元素FS = imerode(TP,FY); %腐蚀(3)利用函数bwmorph(TP, open)与函数bwmorph(TP, close)

13、分别进行开运算与闭运算,其核心代码如下:OP = bwmorph(TP, open); %开运算CL = bwmorph(TP, close); %闭运算(4)运用函数imshow()来显示图片,再利用函数figure,imshow()显示接下来的图片,其核心代码如下:imshow(P); %显示图片figure,imshow(TP);figure,imshow(PZ);figure,imshow(FS);figure,imshow(OP);figure,imshow(CL);6仿真与结果分析6.1仿真(1)利用函数imread()提取原始图像,见图6.1所示图6.1 原图由图6.1可知,此图

14、描述的是海边日落的美景。(2)使用函数graythresh()与函数im2bw()使图6.1二值化,见图6.2图6.2 二值化 由图6.2可知, 二值化后的图像使原先五彩缤纷的颜色只有黑白两色了。(3)利用函数imdilate()对图6.2进行膨胀运算,见图6.3所示图6.3 膨胀由图6.3可知,膨胀后的图像明显比上一幅大了一圈。(4)利用函数imerode()对图6.2进行膨胀运算,见图6.4所示图6.4腐蚀由图6.4可知,腐蚀后的图像相较于二值化后的图像明显小了一圈。(5)利用函数bwmorph(TP, open)对图6.2进行开运算,见图6.5所示图6.5开启由图6.5可知,图像中的事物轮廓变得光滑了许多,目标轮廓基本不变。(6)利用函数bwmorph(TP, close)对图6.2进行闭合运算,见图6.6所示图6.6闭合由图6.6可知,填平了孔洞同时保持了目标面积基本不变,弥合部分小裂缝,而总的位置和形状不变。6.2 结果分析由此可见,数学形态学的四种基本运算各有各的作用:(1)膨胀是把链

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号