基于MATLAB的图像分割算法研究与仿真_第1页
基于MATLAB的图像分割算法研究与仿真_第2页
基于MATLAB的图像分割算法研究与仿真_第3页
基于MATLAB的图像分割算法研究与仿真_第4页
基于MATLAB的图像分割算法研究与仿真_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#4.4.2菜单设计建立用户菜单要建立用户菜单可用uimenu函数,因其调用方法不同,该函数可以用于建立一级菜单项和子菜单项。菜单对象常用属性菜单对象具有Children,Parent,Tag,Type,UserData,Visibl等公共属性,除公共属性外,还有一些常用的特殊属性。快捷菜单快捷菜单是用鼠标右键单击某对象时在屏幕上弹出的菜单 •这种菜单出现的位置是不固定的,而且总是和某个图形对象相联系.在MATLAB中,可以使用uicontextmenu函数和图形对象的UIContextMenu属性来建立快捷菜单[15]。4.4.3对话框设计对话框的控件在对话框上有各种各样的控件,利用这些控件可以实现有关控制.下面先介绍这些控件。按钮(PushButton).双位按钮(ToggleButton).单选按钮(RadioButton).复选框(CheckBox).列表框(ListBox).弹出框(PopupMenu).编辑框(EditBox).滑动条(Slider).静态文本(StaticText).边框(Frame)按钮组(BottonGroup)。对话框的设计建立控件对象MATLAB提供了用于建立控件对象的函数uicontrol,其调用格式为:对象句柄=uicontrol(图形窗口句柄,属性名1,属性值1,属性名2,属性值2,…),其中各个属性名及可取的值和前面介绍的uimenu函数相似,但也不尽相同控件对象的属性MATLAB的10种控件对象使用相同的属性类型,但是这些属性对于不同类型的控件对象,其含义不尽相同。除Children、Paren、Tag、Type、UserDataVisible等公共属性4.4.4句柄图形句柄图形是对底层图形命令集合的总称,它实际上进行生成图形的工作。句柄图形的层次关系如下:4.4.5图形对象句柄命令句柄系统可以从底层(lowlevel)创建和操作线、面、文字、图像等基本图形对象指令。4.5总结本章主要介绍了MATLABGUI设计,包括其设计原理,设计工具,设计方法和如何制作一个GUI界面。5结论与展望5.1结论数字图像目标分割与提取是数字图像处理和计算机视觉领域中一个备受关注的研究分支,也是图像处理领域的一个经典难题。经过近二十年的不断研究和探讨,数字图像目标分割与提取在不同领域取得了很大发展,但是目前还没有一个通用的算法或标准能够胜任所有不同的应用,该问题也没有形成一个通用的自身理论。通过学习和实践经典的图像目标分割与提取的算法,我对这一领域的历史和发展现状有了较为清楚的认识。在现在的研究水平下,想找出一种通用的技术或方法是很困难的。每一种算法都有其自身的优点和缺点,有其特定的适用范围,因此首先明确研究对象的性质是至关重要的,这样在使用算法时才可以有的放矢。经典的算法虽然在应用上已被新的算法所取代,但经典算法中的很多思想都具有相当重要的价值, 它们是新算法研究和提出的基础。通过本次毕业设计,我得到了许多收获。不但对数字图像目标分割与提取邻域的基本理论和基本知识有了较为全面的了解,在对新知识学习的过程中,自己原有的知识和理论也得到了进一步的巩固,同时自己的编程能力也得到了一定程度的提高。 另外,在毕业设计过程中,我所学的知识得到了系统地整理和运用,这既是对我四年学习的检查,也为我今后在工作上的学习打下了坚实的基础。因为时间仓促,再加上本人水平有限,在毕业设计过程中存在不少不足之处。我将以此为鉴,在今后的学习和生活过程中不断改进。5.2展望分割问题的困难在于图像数据的模糊和噪声的干扰。到目前为止,还没有一种或者几种完善的分割方法,可以按照人们的意愿准确的分割任何一种图像。实际图像中景物情况各异,具体问题具体分析,需要根据实际情况选择适合的方法。分割结果的好坏或者正确与否,目前还没有一个统一的评价判断准则,分割的好坏必须从分割的效果和实际应用场景来判断。不过在人类研究图像的历史中,还是积累了许多经典的图像分割方法。虽然这些分割方法不适合所有类型的图像分割,但是这些方法却是图像分割方法进一步发展的基础。事实上,现代一些分割算法恰恰是从经典的分割方法衍生出来的 [⑹0致谢值此论文完成之际,谨向所有曾给予我鼓励、关心和帮助的老师、同学、朋友表示深深的谢意!首先要感谢我的导师顾斌杰,在整个毕业设计的过程中,他给了我各方面的悉心指导,使我有可能完成论文。他严谨求实的作风和渊博深厚的学识深深的感染了我。我还要感谢我们班以及我们系我所认识的同学,是你们给了我好的环境和鼓励帮助,让我顺利的完成了这次的设计。感谢在我成长过程中所有关心我、帮助我的人们。参考文献夏得深,傅德胜•现代图像处理技术与应用•东南大学出版,2001:200-210K.R.Castleman.数字图像处理•电子工业出版社,1998:120-130冈萨雷斯•数字图像处理(MATLAB版)•电子工业出版社,2005:210-240刘直芳,游胜志等•基于多尺度彩色形态矢量算子的边缘检测 •中国图像图形学报2002(9):888-893⑸潘晨,顾峰•基于3D直方图的彩色图像分割方法 •中国图像图形学报2002(8):800-805⑹李宏贵,李兴国•一种基于函数的图像边缘检测算法 •中国图像图形学报 2003(2):188-192J.ShiandJ.Malik.“Normalizedcutsandimageegmentation ”Proc,ofCVP7R1-7977W.Y.MaandB.S.Manjunath. “Edgeflow:aframeworkofboundarydetectionandimagesegmentation ”Proc.ofCVPR,199744-749S.Belongie,et.al.“Colorandtexture-basedimagesegmentationusingEManditsapplicationtocontent-basedimageretrieval ”.PrdCCV,,1998:675-682G.KuntimadandH.S.Ranganath. “PerfectSmgmentationUsingPulseCoupledNeuralNetworks”」EEEtrans.onNeuralNetworks,Vol.10,No.3,1999孙祥,徐流美,吴清.MATLAB7.0基础教程.清华大学出版社,2005:320-330WUZ,LEAHYR.Anoptimalgraphtheoreticapproachtodataclustering:theoryanditsapplicationtoimagesegmentation[J].IEEETransactionsonPatternAnalysisandMachineIntelligence,1993,15(11):1101-1113SHIJ,MalikJ.NormalizedCutsandImageSegmentation[A].Pro2ceedingsofIEEEConferenceonComputerVisionandPatternRecog2nition[C],1997: 731-737WANGS,SISKUNDJM.Imagesegmentationwithratiocut[J]」EEETransactionsonPatternAnalysisandMachineIntelligence,2003,25(6):675-690GRADYLJ.Space2VariantComputerVision:AGraph2TheoreticApproach[D].BostonUniversity,2004:65-98SWang,JMSiskind.Imagesegmentationwithratiocut[J].IEEETransonPAMI,2003;25(6):675-690阈值算法:fname=uigetfile('*.bmp,*.tif,*.jpg','请选择一副图片’);l=imread(fname);subplot(2,2,1),imshow(l),title('原始图像');subplot(2,2,2),imhist(I),title('原始图像直方图');G1=threshold(l,120);G2=threshold(l,50);subplot(2,2,3),imshow(G1),title('T=120时的图像分割');subplot(2,2,4),imshow(G2),title('T=50时的图像分割');以下是threshold子函数的程序代码如下:functionG=threshold(I,T);[m,n]=size(I);G=zeros(m,n);fori=1:mforj=1:nifI(i,j)>=TG(i,j)=255;endendend边缘检测l=imread('lena.jpg');%提取图像BW仁edge(l,'sobel');%用SOBEL算子进行边缘检测BW2=edge(I,'roberts');%用Roberts算子进行边缘检测BW3=edge(I,'prewitt');%用prewitt算子进行边缘检测BW4=edge(I,'log');%用log算子进行边缘检测BW5=edge(I,'canny');%用canny算子进行边缘检测h=fspecial('gaussian?,5);BW6=edge(l,?canny?);subplot(2,3,1),imshow(BWI);title(,sobeledgecheck?);subplot(2,3,2),imshow(BW2);title(,sobeledgecheck?);subplot(2,3,3),imshow(BW3);title(,prewittedgecheck?);subplot(2,3,4),imshow(BW4);title(,logedgecheck?);subplot(2,3,5),imshow(BW5);title(,cannyedgecheck?);subplot(2,3,6),imshow(BW6);title(,gasussian&cannyedgecheck?);%此为用高斯滤波后Canny算子边缘检测结果%边缘检测l=imread('blood.tif');subplot(2,2,1),imshow(l),title('原始图像');BW仁edge(I,'Roberts');BW2=edge(I,卩rewitt');BW3=edge(I,'Sobel');subplot(2,2,2),imshow(BW1),title('Roberts算子边缘检测结果');subplot(2,2,3),imshow(BW2),title('Prewitt算子边缘检测结果');subplot(2,2,4),imshow(BW3),title('Sobel算子边缘检测结果');Callback函数1:用于读取图像。globalim[filename,pathname]=uigetfile({'*.bmp';'*.tif';'*.jpg'},' 请选择一个图像');ifpathname==0return;endstr=[pathnamefilename];[imA]=imread(str);axes(handles.axes1);imshow(im,A);functionvarargout=gui_new(varargin)%GUI_NEWM-fileforgui_new.fig%GUI_NEW,byitself,createsanewGUI_NEWorraisestheexisting%singleton*.%%H=GUI_NEWreturnsthehandletoanewGUI_NEWorthehandleto% theexistingsingleton*.%% GUI_NEW('CALLBACK',hObject,eventData,handles,...)callsthelocal%functionnamedCALLBACKinGUI_NEW.Mwiththegiveninputarguments.%% GUI_NEW('Property','Value',...)createsanewGUI_NEWorraisesthe%existingsingleton*.Startingfromtheleft,propertyvaluepairsare%appliedtotheGUIbeforegui_new_OpeningFcngetscalled.An%unrecognizedpropertynameorinvalidvaluemakespropertyapplication%stop.Allinputsarepassedtogui_new_OpeningFcnviavarargin.%%*SeeGUIOptionsonGUIDE'sToolsmenu.Choose"GUIallowsonlyone% instancetorun(singleton)".%%Seealso:GUIDE,GUIDATA,GUIHANDLES%Edittheabovetexttomodifytheresponsetohelpgui_new%LastModifiedbyGUIDEv2.514-May-200916:58:58%Begininitializationcode-DONOTEDITgui_Singleton=1;gui_State=struct('gui_Name', mfilename,...'gui_Singleton',gui_Singleton,...'gui_OpeningFcn',@gui_new_OpeningFcn,...'gui_OutputFcn',@gui_new_OutputFcn,...'gui_LayoutFcn',[],...'gui_Callback',[]);ifnargin&&ischar(varargin{1})gui_State.gui_Callback=str2func(varargin{1});endifnargout[varargout{1:nargout}]=gui_mainfcn(gui_State,varargin{:});elsegui_mainfcn(gui_State,varargin{:});end%Endinitializationcode-DONOTEDIT%Executesjustbeforegui_newismadevisible.functiongui_new_OpeningFcn(hObject,eventdata,handles,varargin)%Thisfunctionhasnooutputargs,seeOutputFcn.%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%varargincommandlineargumentstogui_new(seeVARARGIN)%Choosedefaultcommandlineoutputforgui_newhandles.output=hObject;%Updatehandlesstructureguidata(hObject,handles);%UIWAITmakesgui_newwaitforuserresponse(seeUIRESUME)%uiwait(handles.figure1);%Outputsfromthisfunctionarereturnedtothecommandline.functionvarargout=gui_new_OutputFcn(hObject,eventdata,handles)%varargoutcellarrayforreturningoutputargs(seeVARARGOUT);%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Getdefaultcommandlineoutputfromhandlesstructurevarargout{1}=handles.output;%Executesonbuttonpressinpushbuttonsfunctionpushbutton1_Callback(hObject,eventdata,handles)%hObjecthandletopushbuttonl(seeGCBO)%eventdatareserved-%eventdata%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Executesonbuttonpressinpushbutton2.functionpushbutton2_Callback(hObject,eventdata,handles)%hObjecthandletopushbutton2(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Executesonbuttonpressinradiobutton1.functionradiobutton1_Callback(hObject,eventdata,handles)%hObjecthandletoradiobutton1(seeGCBO)%eventdatareserved-%eventdata%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Hint:get(hObject,'Value')returnstogglestateofradiobutton1%Executesonbuttonpressinradiobutton2.functionradiobutton2_Callback(hObject,eventdata,handles)%hObjecthandletoradiobutton2(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Hint:get(hObject,'Value')returnstogglestateofradiobutton2%Executesonbuttonpressinradiobutton3.functionradiobutton3_Callback(hObject,eventdata,handles)%hObjecthandletoradiobutton3(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Hint:get(hObject,'Value')returnstogglestateofradiobutton3%Executesonbuttonpressinradiobutton4.functionradiobutton4_Callback(hObject,eventdata,handles)%hObjecthandletoradiobutton4(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Hint:get(hObject,'Value')returnstogglestateofradiobutton4

%Executesonbuttonpressinradiobutton5.functionradiobutton5_Callback(hObject,eventdata,handles)%hObject%eventdatahandletoradiobutton5(seeGCBO)res

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论