图像几何变换程序设计.doc

上传人:精*** 文档编号:1133724 上传时间:2024-09-25 格式:DOC 页数:20 大小:2.26MB
下载 相关 举报
图像几何变换程序设计.doc_第1页
第1页 / 共20页
图像几何变换程序设计.doc_第2页
第2页 / 共20页
图像几何变换程序设计.doc_第3页
第3页 / 共20页
图像几何变换程序设计.doc_第4页
第4页 / 共20页
图像几何变换程序设计.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、*实践教学*兰州理工大学计算机与通信学院2012年秋季学期计算机图象处理课程设计题 目: 图像几何变换程序设计 专业班级: 姓 名: 学 号: 指导教师: 成 绩: 目录摘要3一、前言4二、算法分析与描述5三、 详细设计过程7四、调试过程中出现的问题及相应解决办法10五、程序运行截图及其说明11六、 简单操作手册14设计总结16参考文献17致谢18附录19摘要 本次我的课程设计题目是二值数学形态图像处理(DigitalImageProcessing),它是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。本文利用matlab以实现图像的二值数学形态学图像处理程序设计。

2、二值数学形态学图像处理实现图像的腐蚀和膨胀开运算和闭运算。【关键词】腐蚀; 膨胀; 开运算; 闭运算 一、前言数字图像处理技术是20世纪60年代开始发展起来的一门新兴学科。近40年来,由于大规模集成电路和计算机技术的迅速发展,离散数学的创立及理论上的不断突破,以及军事、医学和工业等方面应用需求的不断增长,数字图像处理的理论和方法发展迅速,图像处理技术不断完善,不仅在理论研究上取得了很大的进展,而且其应用领域也日益扩大。随着科技的进步以及人类需求的多样化发展,多学科的交叉、融合已成为现代科学发展的突出特色和重要途径。因此,数字图像处理学科正逐步向其他学科领域渗透,并为其他学科的研究和发展提供基础

3、性支持。 数字图像处理技术无论是对于21世纪的科学理论研究,还是工程应用都将具有重要的影响。国内外许多有识之士指出,从某种意义上讲,数字图像处理是实现智能计算机、智能机器人或多媒体通信系统的基础,未来计算机及智能机器人的发展与进步将在一定程度上依赖于机器视觉信息处理理论和技术的突破。虽然相对于经典学科,数字图像处理还很年轻,但日趋成熟的数字图像处理技术已经在很多方面得到深入而广泛的应用,一定程度上改变了人类的生活,给人们的日常生活、学习、工作带来极大的方便。 目前,数字图像处理技术已在工程科学、计算机科学、信息科学、遥感、遥测、采矿、地质勘探、工业探伤、自动控制、机器人、军事、公安、生物学、医

4、学、视频、多媒体、统计学甚至社会科学等领域得到了广泛应用,并显示出了更加诱人的前景,成为了包括计算机科学与技术、信息科学、航空航天和生物医学工程等在内的多学科的研究重点和热点。这些学科的研究成果又促使了图像处理技术向更高水平发展,数字图像处理技术正是在这种应用的迫切需要和自身的不断发展之中逐步完善的新兴学科。未来,图像处理技术的发展及应用与经济建设联系之紧密、影响之深远是不可估量的。二、算法分析与描述2.1二值图像数学形态学2.1.1图像的膨胀和腐蚀 膨胀和腐蚀是两个基本的数学形态学运算。膨胀将像素添加到图像中物体的边缘,腐蚀则删除对象边缘的像素。添加或删除的像素数目与用于处理图像的结构元素的

5、大小和形状。下面介绍的内容有:l 提供有关膨胀和腐蚀函数如何工作的重要信息;l 描述结构函数和如何创建他们;l 描述如何进行数学形态学膨胀和腐蚀;2.1.1.1理解图像的膨胀和腐蚀运算规则膨胀输出像素的值是输入像素所有相邻像素的最大值。二值图像中,如果任何相邻像素的值为1,则输出像素的值设置为1.。膨胀输出像素的值是输入像素所有相邻像素值的最小值。二值图像中,如果任何相邻像素的值为0,则输出像素的值设置为0。 表21灰度膨胀和腐蚀的规则2.1.1.3结构元素 膨胀和腐蚀运算的核心内容就是结构元素。二维或者说平面结构元素由元素0和1的矩阵组成,一般结构元素比进行处理的图像要小的多。结构元素的中心

6、像素,即原点可以确定目标像素。结构元素中包含1的像素定义结构元素的领域。这些像素在进行膨胀和腐蚀时都要进行考虑。2.1.1.4 处理图像边缘的像素 数学形态学函数在输入图像中的目标像素上确定结构元素原点的位置。对于图像边缘的像素,结构元素所定义的部分领域可以扩展到图像边界以外。 为了处理边界像素,数学形态学函数给这些没有定义的像素制定了一个值。就好像这些函数已经用额外的行和列填补了图像。这些填补的像素更具膨胀和腐蚀运算有所不同。 表22填补图像的规则运算规则膨胀图像边界外的像素值为所提供的数据类型的最大值,对于二值图像,假定这些像素的值为0,对于灰度图像,对于uint8型图像,最大值为0腐蚀图

7、像边界外的像素值为所提供的数据类型的最大值,对于二值图像,假定这些像素的值为1,对于灰度图像,对于uint8型图像,最大值为2552.1.1.5 膨胀图像用imdilate函数膨胀图像。Imdilate函数接受下面两个主要变量:l 要处理的输入图像(灰度图像、二值图像或压缩二值图像);l 用strel函数返回的结构元素对象或定义结构元素领域的二值矩阵;Imdilate函数还接受两个可选变量:PADOPT和PACKOPT。PADOPT变量影响输出图像的大小。PACKOPT变量把图像识别为压缩二值图像。2.1.1.6 腐蚀图像用imerode函数俯视图像。该海曙接收两个主要变量:l 要处理的输入图

8、像(灰度图像、二值图像或压缩二值图像);l 用strel函数返回的结构元素对象或定义结构元素领域的二值矩阵;imerode函数还接受三个可选变量:PADOPT和PACKOPT和M。如果图像时压缩二值图像,则M确定原始图像中的行数。三、 详细设计过程3.1图像的二值数学形态学图像二值数学形态学开运算闭运算图像的腐蚀图像的膨胀 图3.1图像二值数学形态学3.1.1图像腐蚀与膨胀:(1).腐蚀腐蚀是一种消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义的物体。一般意义的腐蚀概念定义为:也就是说,由B对X腐蚀所产生的二值图象E是满足以下条件的点(x,y)的集合:如果B的原点平移到点(x,y),

9、那么B将完全包含于X中。根据以上原理,腐蚀运算的具体步骤如下:1).扫描原图,找第一个像素值为1的点;2).将预先设定好形状以及原点位置的结构元素的原点移动到该点;3).判断该结构元素所覆盖范围内的像素值是否全部为1,如果是,则腐蚀后图像的相同位置上的像素值置为1,如果至少有一个像素的值为0,则腐蚀后图像的相同位置上的像素值置为0;4).对原图中所有像素值为1的点重复进行2)和3). (2).膨胀膨胀是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。可以用来填补物体中的空洞。一般意义的膨胀概念定义为:也就是说,由B对X膨胀所产生的二值图象D是满足以下条件的点(x,y)的集合:如

10、果B的原点平移到点(x,y),那么它与X的交集非空。根据以上原理,腐蚀运算的具体步骤如下:1).将预先设定好形状以及原点位置的结构元素的原点移动到图像中可包容的所有像素点;2).判断该结构元素所覆盖范围内的像素值是否存在至少一个为1的点,如果存在,则膨胀后图像中与结构元素原点相同位置上的像素值置为1,如果该覆盖范围内的所有像素的值为0,则膨胀后图像的相同位置上的像素值置为0;3).对原图中所有像素值为1的点重复进行1)和2).3.2MATLAB界面设置利用matlab数字图像处理,编写相关函数,具体过程如下:双击打开MATLAB 7.0FileNewGUI单击,调整axes1大小单击OK,调整

11、按钮大小和颜色,修改名称再建axes2单击OK,调整按钮大小和颜色,修改名称保存ViewM-file Edit针对每个功能按钮,输入对应的函数。四、调试过程中出现的问题及相应解决办法本软件大多数功能实现是针对二值图像,如果输入图像为RGB图像。则进行以下操作时如:腐蚀,膨胀将无法处理显示,请先进行RGB图像转二值图像操作后再进行其他处理。你会发现,没有读入图片之前,在axes_dst点右键是有菜单的,一旦二值化 之后,再次点右键就没有菜单了。 但是,当我们把右键菜单axes_dst_menu,添加到figure窗口(在没有控件的地方, 双击,即可打开figure的属性窗口)的UIContext

12、Menu的时候,就不会出现上面的 问题,而且一切运行正常。因为,当你添加到axes_dst之后,一旦坐标轴的内容 改变,就会将右键菜单附加到父对象上。因此,如果一定需要在坐标轴上显示右 键菜单,就要通过程序创建了。五、程序运行截图及其说明二值图像的腐蚀和膨胀开运算和闭运算1、 腐蚀可以粘连的目标物进行分离。2、 膨胀可以将断开的目标进行接续。3、 开运算:使用同一个模板对图像先腐蚀再进行膨胀的运算,以达到腐蚀目的,利用腐蚀可以粘连的目标物进行分离。4、 闭运算:使用同一个模板对图像先膨胀再进行膨腐蚀的运算,以达到膨胀目的,利用膨胀可以将断开的目标进行接续。图像的二值化 图5.2图像的二值化 图

13、5.3图像的二值化阈值设置图像的腐蚀 图5.4图像的腐蚀图像的膨胀 图5.5 图像的膨胀图像的开运算与闭运算 图5.6 图像的开运算图5.7 图像的闭运算图像的骨架提取图5.8图像的骨架提取六、 简单操作手册 打开MATLAB软件,单击File下拉菜单。选择NEW或者Open创建一个新的GUI或者打开一个已有的GUI(后缀名为.fig的文件)。然后根据提示进行操作。图6.1打开MATLAB 这里我已经创建了一个关于二值数学形态学图像处理的GUI所以只需要打开就行。图6.2 打开GUI打开后会出现图像处理的界面。然后根据窗口下拉菜单进行所需要的操作图6.3运行界面文件下拉菜单里面有l 打开:打开

14、你所需要进行变换的图像。l 保存:保存你已经处理过的图像。l 退出:确定无操作后将进行关闭界面。(如果你处理过图像后没有进行保存而直接退出,将会弹出一个对话框。询问你是否需要保存退出)图6.4界面操作设计总结通过这次基于MATLAB的图像处理的课程设计,熟悉和掌握了MATLAB 程序设计方法、MATLAB GUI 程序设计、MATLAB图像处理工具箱,了解了图形用户界面的制作的设计原则和一般步骤:简单性、一致性、习常性、响应要迅速、连续等原则,学会了运用MATLAB工具箱对图像进行处理和分析。在平常的课程学习过程当中,书上的知识感觉不是太难,只要自己认真听讲,下课后再仔细回顾回顾就能很快掌握,

15、自以为什么都明白了,但在课设过程中却发现,要将知识实际运用起来却是十分困难的,所以在今后的学习过程中我一定要加强实际运用的能力训练,更好的将学来的知识转化到解决实际问题之中。通过此次综合训练,使我计算机图像处理的工程及其实现有了更深的理解,获得了很多宝贵的经验。特别是怎么样通过理论与实践相结合,把理论知识应用到我们做的程序实践过程上去。学会了很多关于计算机图像处理的经验和技巧,更重要的是,知道应如何在困难重重中一步一步细心的发现问题,解决问题,并在遇到问题时同学之间相互帮助中,深刻体会到了团体合作精神的重要性。参考文献1 朱虹.计算机图象处理基础M. 科学出版社, 20052 R C.Gonz

16、alez, R E.Woods著,阮秋琦,阮宇智等译.计算机图象处理(第2版).北京:电子工业出版社,20033 K.R.Castleman. 计算机图象处理.北京:电子工业出版社,20024 章毓晋.图像处理与分析-图像工程(上册),清华大学,20015 何斌等编著.Visual C+计算机图象处理.人民邮电出版社,2002 6 张宏林编著.Visual C+计算机图象模式识别技术及工程实践.人民邮电出版社,2003.7 黄维通.Visual C+面向对象与可视化程序设计.清华大学出版社,20038 R C.Gonzalez, R E.Woods, S L. Eddins著,阮秋琦,阮宇智等

17、译.计算机图象处理(MATLAB版).北京:电子工业出版社,2005致谢首先我要感谢我的老师,在设计过程中给了我很多宝贵意见和丰富的资料并指引我阅读相关的资料和书籍,使我在不熟悉的领域中仍能迅速掌握新的技术。同时感谢我的同学,在设计中遇到问题时和我积极地讨论,并提出了很多建设性的意见,没有他们的帮助,只靠我自己一定很难完成这次任务。在今后的学习和工作中,我一定要发扬团队精神,齐心协力完成相应的设计工作。附录实现图像腐蚀的文件的代码:function fushi_Callback(hObject, eventdata, handles)img_src=getappdata(handles.fig

18、ure_xximage,img_src);img_src=rgb2gray(img_src);se=strel(disk,5);img_src=imerode(img_src,se);axes(handles.axes_dst);imshow(img_src);实现图像膨胀的文件的代码:function pengzhang_Callback(hObject, eventdata, handles)img_src=getappdata(handles.figure_xximage,img_src);img_src=rgb2gray(img_src);B=0 1 0;1 1 1; 0 1 1;im

19、g_src=imdilate(img_src,B);axes(handles.axes_dst);imshow(img_src);实现图像开运算的文件的代码:function ky_Callback(hObject, eventdata, handles)img_src=getappdata(handles.figure_xximage,img_src);img_src=rgb2gray(img_src);B=0 1 0;1 1 1; 0 1 1;img_src=imdilate(img_src,B);axes(handles.axes_dst);imshow(img_src);实现图像闭运算

20、的文件的代码:function close_Callback(hObject, eventdata, handles)img_src=getappdata(handles.figure_xximage,img_src);img_src=rgb2gray(img_src);bw1=im2bw(img_src,0.7);s=ones(3);img_src=imclose(bw1,s);axes(handles.axes_dst);实现图像骨架提取的文件的代码:function gj_Callback(hObject, eventdata, handles)img_src=getappdata(handles.figure_xximage,img_src);img_src=im2bw(img_src);img_src=bwmorph(img_src,skel,1); axes(handles.axes_dst);imshow(img_src);19

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

当前位置:首页 > 技术资料 > 其他资料

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922