![图像分割程序设计_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-4/19/f16bf554-53be-45a3-b126-3d16ea47a022/f16bf554-53be-45a3-b126-3d16ea47a0221.gif)
![图像分割程序设计_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-4/19/f16bf554-53be-45a3-b126-3d16ea47a022/f16bf554-53be-45a3-b126-3d16ea47a0222.gif)
![图像分割程序设计_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-4/19/f16bf554-53be-45a3-b126-3d16ea47a022/f16bf554-53be-45a3-b126-3d16ea47a0223.gif)
![图像分割程序设计_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-4/19/f16bf554-53be-45a3-b126-3d16ea47a022/f16bf554-53be-45a3-b126-3d16ea47a0224.gif)
![图像分割程序设计_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-4/19/f16bf554-53be-45a3-b126-3d16ea47a022/f16bf554-53be-45a3-b126-3d16ea47a0225.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、* 实践教学实践教学 * 兰州理工大学兰州理工大学 计算机与通信学院 2012 年秋季学期 图像处理图像处理 综合训练综合训练 题 目: 图像分割程序设计 专业班级: 姓 名: 学 号: 指导教师: 成 绩: 目目 录录 摘 要.1 一、前言.2 二、算法分析与描述.3 三、详细设计过程.5 四、调试过程中出现的问题及相应解决办法.8 五、程序运行截图及其说明.8 六、简单操作手册.12 设计总结.15 参考资料.16 致谢.17 附录.18 摘摘 要要 图像分割就是从图像中将某个特定区域与其他部分进行分离并提取出来 的处理图像分割处理实际上就是区分图像中的“前景目标”和“背景”所 以通常又称
2、之为图像的二值化处理。图像分割就是把图像分成若干个特定的、 具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像 分析的关键步骤。现有的图像分割方法主要分以下几类:基于阈值的分割方法、 基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。 近年来,研究人员不断改进原有的图像分割方法并把其它学科的一些新理论和 新方法用于图像分割,提出了不少新的分割方法。 关键词:图像分割;阈值;二值化; 一、前言一、前言 图形图像处理的应用领域涉及人类生活和工作的各个方面,它是从 60 年代以来随计算机的技术和 vlsi 的发展而产生、发展和不断成熟起来的一个新 技术领域理论上和
3、实际应用上都并取得了巨大的成就。数字图像处理与模拟图 像处理的根本不同在于,它不会因图像的存储、传输或复制等一系列变换操作 而导致图像质量的退化,所以图形图像的处理在我们的生活中又很重要的作用。 在对图像的研究和应用中,人们往往只对图像中的某些部分感兴趣。这些部分 通常称为目标或前景,它们一般对应图像中特定的、具体独特性质的区域。为 了辨识和分析目标,需要将它们分别提取出来,在此基础上才有可能对目标进 一步利用。图像分割就是指把图像分成各具特性的区域并提取出感兴趣的目标 的技术和过程。在图象分析中,通常需将所关心的目标从图象中提取出来,即图 象的分割。图象分割在图象分析,图象识别,图象检测等方
4、面占有非常重要的位 置。 二、算法分析与描述二、算法分析与描述 1.图像分割的数学描述 令集合 r 代表整个区域,对 r 的分割可看作将 r 分成若干个满足以下 5 个条件 的非空子集(子区域)r1 ,r1 ,rn (1)所有子集构成图像; (2)各子集不重叠; (3)每个子集中的像素有某种共同的属性; (4)不同的子集属性不同; (5)每个子集中的所有像素应该是连通的。 2. 基于灰度直方图的峰谷法 图像的灰度直方图必须是双峰的直方图的左侧峰为亮度较高的部分,这 部分恰好对应于较暗的背景部分,直方图的右侧为亮度较高的部分,这里恰好 对应于会面中图案部分。显然灰度直方图的峰谷法是一种有效且非常
5、简单的阈 值方法,但是该方法有一个局限性就是灰度值放度必须是双峰的。 3. 区域生长 区域生长的基本思想是将具有相似性质的像素集合起来构成区域。具 体先对每个需要分割的区域找一个种子像素作为生长的起点,然后将种子像素 周围邻域中与种子像素有相同或相似性质的像素(根据某种事先确定的生长或相 似准则来判定)合并到种子像素所在的区域中。将这些新像素当作新的种子像素 继续进行上面的过程,直到再没有满足条件的像素可被包括进来。这样一个区 域就长成了。 区域生长需要选择一组能正确代表所需区域的种子像素,确定在生长 过程中的相似性准则,制定让生长停止的条件或准则。相似性准则可以是灰度 级、彩色、纹理、梯度等
6、特性。选取的种子像素可以是单个像素,也可以是包 含若干个像素的小区域。大部分区域生长准则使用图像的局部性质。生长准则 可根据不同原则制定,而使用不同的生长准则会影响区域生长的过程。 区域生长法的优点是计算简单,对于较均匀的连通目标有较好的分割效果。它 的缺点是需要人为确定种子点,对噪声敏感,可能导致区域内有空洞。另外, 它是一种串行算法,当目标较大时,分割速度较慢,因此在设计算法时,要尽 量提高效率。 3、详细设计过程详细设计过程 1.流程图 2.区域生长法 区域生长法的数学表达: 一致性判别条件: 灰度变化阈值: 生长准则: 为待测生长的点领域内的灰度值 matlab 代码: global
7、a0 a0=getimage; axes(handles.axes2); seed=100,220; 读入图像 对输出的图像进行保存 对保存图像读取 输出阈值处理结果 输出区域生长处理结果 输出原图像 退出程序 结束 开 始 thresh=15; a=rgb2gray(a0); a=imadjust(a,min(min(double(a)/255,max(max(double(a)/255,); a=double(a); b=a; r,c=size(b); n=r*c; pixel_seed=a(seed(1),seed(2); q=seed(1) seed(2); top=1; m=zero
8、s(r,c); m(seed(1),seed(2)=1; count=1; while top=0 r1=q(1,1); c1=q(1,2); p=a(r1,c1); dge=0; for i=-1:1 for j=-1:1 if r1+i0 end q=q(2:top,:); top=top-1; end imshow(b,); title( 区域生长分割); handles.img=b; guidata(hobject,handles); 3. 基于灰度直方图的峰谷法 由封谷法的概念可得 matalb 代码: global i axes(handles.axes2); i=getimage
9、; if ndims(i) = 3 i = rgb2gray(i); end fxy = imhist(i, 256); %统计每个灰度值的个数 %figure; %subplot(2, 2, 1); %imshow(i, ); %title(原图) %subplot(2, 2, 2); plot(fxy); %画出灰度直方图 %title(直方图) p1 = input num:; p2 = 180; p3 = inputdlg(p1,input num:1256,1,p2); p = str2num(p31); p = p/255; bw = im2bw(i, p); %小于阈值的为黑,大
10、于阈值的为白 %subplot(2, 2, 3); 4、调试过程中出现的问题及相应解决办法调试过程中出现的问题及相应解决办法 问题一: 最初的调试过程中总是区域生长算法调试不成功,并且 matlab gui 的设计过程 也出现了很多问题,最后发现调用函数方法错误,最后通过查 matlab 基础资料 得到解决。 问题二: 在设计 gui 的时候每次都是处理后的图像坐标位置没有放到固定的区域,通过 查找 matlab gui 设计资料解决了问题。 5、程序运行截图及其说明程序运行截图及其说明 1.文件打开读取处理图片截图如下: 图 6.1 原图 2.点击峰谷法分割图像并截图得: 图 6.2 峰谷法
11、分割 3.点击区域生长法分割图像截图得: 图 6.3 区域生长法分割 六、简单操作手册六、简单操作手册 图 6.1 “文件打开”按路径打开图像文件 图 6.2 “保存”按路径保存处理完的图像文件 图 6.3 “峰谷法分割图像”对已打开的图像按阈值进行峰谷法分割处理 图 6.4 “区域生长法分割图像” 对已打开的图像进行区域生长法分割处理 设计总结设计总结 我们知道人类所获得信息的 70%以上来自视觉,换句话说人类将用自己双眼 所观察到的世界进行缜密的分析与思考之后,推动了科技的进步也推动了整个世 界的发展。经过了为期两周的课程设计,我深刻的感受到了图像处理的强大, 与此同时,感受到更多的就是编
12、程的辛苦,只要一个小地方出错以后,就要对 整个程序进行又一遍的检查,真可为是牵一发而动全身呀,在当初做的时候, 虽让将每一个功能模块的代码都写出来,但是在将他们整合起来的时候,在传 值和做图形用户界面的时候出现了很大的问题,最终还是通过网络和咨询同学 才得以解决问题,所以在这要衷心的感谢网络和同学们。 参考资料参考资料 1 朱 虹. 数字图像处理基础m. 科学出版社, 2005 2 r c.gonzalez, r e.woods 著,阮秋琦,阮宇智等译.数字图像处理(第 2 版).北 京:电子工业出版社,2003 3 k.r.castleman. 数字图像处理.北京:电子工业出版社,2002
13、4 章毓晋.图像处理与分析-图像工程(上册),清华大学,2001 5r c.gonzalez, r e.woods, s l. eddins 著,阮秋琦,阮宇智等译.数字图像处理 (matlab 版).北京:电子工业出版社,2005 致谢致谢 首先,我要感谢我的指导老师,他严谨细致、一丝不苟的作风一直是我生 活、学习中的榜样,给了起到了指明灯的作用;他们循循善诱的教导和不拘一 格的思路给予我无尽的启迪,让我很快就感受到了设计的快乐并融入其中。其 次我要感谢同组同学对我的帮助和指点,没有他们的帮助和提供资料,没有他 们的鼓励和加油,这次课程设计就不会如此的顺利进行,最后就是要感谢网络 给我们提供
14、了大量的资料。 附录附录 function varargout = keshe(varargin) % keshe matlab code for keshe.fig % keshe, by itself, creates a new keshe or raises the existing % singleton*. % % h = keshe returns the handle to a new keshe or the handle to % the existing singleton*. % % keshe(callback,hobject,eventdata,handles,.)
15、 calls the local % function named callback in keshe.m with the given input arguments. % % keshe(property,value,.) creates a new keshe or raises the % existing singleton*. starting from the left, property value pairs are % applied to the gui before keshe_openingfcn gets called. an % unrecognized prop
16、erty name or invalid value makes property application % stop. all inputs are passed to keshe_openingfcn via varargin. % % *see gui options on guides tools menu. choose gui allows only one % instance to run (singleton). % % see also: guide, guidata, guihandles % edit the above text to modify the resp
17、onse to help keshe % last modified by guide v2.5 10-jan-2013 17:51:00 % begin initialization code - do not edit gui_singleton = 1; gui_state = struct(gui_name, mfilename, . gui_singleton, gui_singleton, . gui_openingfcn, keshe_openingfcn, . gui_outputfcn, keshe_outputfcn, . gui_layoutfcn, , . gui_ca
18、llback, ); if nargin end if nargout varargout1:nargout = gui_mainfcn(gui_state, varargin:); else gui_mainfcn(gui_state, varargin:); end % end initialization code - do not edit % - executes just before keshe is made visible. function keshe_openingfcn(hobject, eventdata, handles, varargin) % this func
19、tion has no output args, see outputfcn. % hobject handle to figure % eventdata reserved - to be defined in a future version of matlab % handles structure with handles and user data (see guidata) % varargin command line arguments to keshe (see varargin) % choose default command line output for keshe
20、handles.output = hobject; % update handles structure guidata(hobject, handles); % uiwait makes keshe wait for user response (see uiresume) % uiwait(handles.figure1); % - outputs from this function are returned to the command line. function varargout = keshe_outputfcn(hobject, eventdata, handles) % v
21、arargout cell array for returning output args (see varargout); % hobject handle to figure % eventdata reserved - to be defined in a future version of matlab % handles structure with handles and user data (see guidata) % get default command line output from handles structure varargout1 = handles.outp
22、ut; % - function open_file_callback(hobject, eventdata, handles) % hobject handle to open_file (see gcbo) % eventdata reserved - to be defined in a future version of matlab % handles structure with handles and user data (see guidata) filename,pathname=uigetfile(*.jpg;*.bmp;*.tif;*.*,载入图像); if isequa
23、l(filename,0)|isequal(pathname,0) errordlg(没有选中文件,出错); return; else file=pathname,filename; global s %设置一个全局变量 s,保存初始图像路径,以便之后的还原操作 s=file; x=imread(file); set(handles.axes1,handlevisibility,on); axes(handles.axes1); imshow(x); set(handles.axes1,handlevisibility,off); axes(handles.axes2); imshow(x);
24、 handles.img=x; guidata(hobject,handles); end % - function save_file_callback(hobject, eventdata, handles) % hobject handle to save_file (see gcbo) % eventdata reserved - to be defined in a future version of matlab % handles structure with handles and user data (see guidata) sfilename ,sfilepath=uip
25、utfile(*.jpg;*.bmp;*.tif;*.*,保存图像文件,untitled.jpg); if isequal(sfilename,sfilepath,0,0) sfilefullname=sfilepath ,sfilename; imwrite(handles.img,sfilefullname); else msgbox(你按了取消键,保存失败); end % - function close_file_callback(hobject, eventdata, handles) % hobject handle to close_file (see gcbo) % event
26、data reserved - to be defined in a future version of matlab % handles structure with handles and user data (see guidata) clc; close all; close(gcf); clear; % - executes on button press in fenggu. function fenggu_callback(hobject, eventdata, handles) % hobject handle to fenggu (see gcbo) % eventdata
27、reserved - to be defined in a future version of matlab % handles structure with handles and user data (see guidata) %clc; clear all; close all; %i = imread(lena.jpg); global i axes(handles.axes2); i=getimage; if ndims(i) = 3 i = rgb2gray(i); end fxy = imhist(i, 256); %统计每个灰度值的个数 %figure; %subplot(2,
28、 2, 1); %imshow(i, ); %title(原图) %subplot(2, 2, 2); plot(fxy); %画出灰度直方图 %title(直方图) p1 = input num:; p2 = 180; p3 = inputdlg(p1,input num:1256,1,p2); p = str2num(p31); p = p/255; bw = im2bw(i, p); %小于阈值的为黑,大于阈值的为白 %subplot(2, 2, 3); imshow(bw); title(双峰阈值分割) handles.img=bw; guidata(hobject,handles);
29、 % - function m_file1_r_callback(hobject, eventdata, handles) % hobject handle to m_file1_r (see gcbo) % eventdata reserved - to be defined in a future version of matlab % handles structure with handles and user data (see guidata) %a = imread(c:usersadministratordesktop新建文件夹lena.jpg); % 读入图像 % - exe
30、cutes on button press in quyu. function quyu_callback(hobject, eventdata, handles) % hobject handle to quyu (see gcbo) % eventdata reserved - to be defined in a future version of matlab % handles structure with handles and user data (see guidata) global a0 a0=getimage; axes(handles.axes2); %a0=imread(lena.jpg);%读入图像 seed=100,220;%选择起始位置 thresh=15;%相似性选择阈值 a=rgb2gray(a0); %灰度化 a=imadjust(a,min(min(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2022-2023学年江西省宜春市袁州区四年级(上)期末数学试卷
- 人教版小学数学二年级下册《除法的初步认识(二)》练习题(含答案)
- 2025年买卖房屋协议书合同(2篇)
- 2025年代理销售合同标准样本(2篇)
- 2025年中学九年级历史教学工作总结(二篇)
- 2025年九年级班主任下学期的工作总结(2篇)
- 2025年五年级小学数学教师工作总结样本(四篇)
- 2025年人才开发专项资金使用协议样本(三篇)
- 2025年二手房屋买卖合同协议简单版(2篇)
- 地铁站装修工程合同范例
- 操作工考核评分表
- 俄罗斯水资源现状分析
- 非法捕捞水产品罪
- 新概念第一册单词汇总带音标EXCEL版
- 作用于血液及造血器官的药 作用于血液系统药物
- 心肺复苏(最全版)完整版
- 春节节后施工复工安全培训
- GB/T 3478.1-1995圆柱直齿渐开线花键模数基本齿廓公差
- GB/T 1346-2001水泥标准稠度用水量、凝结时间、安定性检验方法
- FZ/T 25001-2012工业用毛毡
- 瑞幸咖啡SWOT分析
评论
0/150
提交评论