收藏 分享(赏)

数字图像处理及应用(MATLAB)第7章.ppt

上传人:gnk289057 文档编号:7646766 上传时间:2019-05-22 格式:PPT 页数:64 大小:1.17MB
下载 相关 举报
数字图像处理及应用(MATLAB)第7章.ppt_第1页
第1页 / 共64页
数字图像处理及应用(MATLAB)第7章.ppt_第2页
第2页 / 共64页
数字图像处理及应用(MATLAB)第7章.ppt_第3页
第3页 / 共64页
数字图像处理及应用(MATLAB)第7章.ppt_第4页
第4页 / 共64页
数字图像处理及应用(MATLAB)第7章.ppt_第5页
第5页 / 共64页
点击查看更多>>
资源描述

1、第七章 数字图像处理软件设计,7.1 图形用户界面设计7.2 菜单及快捷键的设计7.3 软件设计技术分析,邓桅阻纱洋蚂庚村胃指误霍嚏激氧猛雄芬溯碧刑厦丘查砌秤言雍遏蕉泌均数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,7.1 图形用户界面设计,用户界面是指人与程序或者是机器之间交互作用的工具,那么图形用户界面(GUI)也是这个意思,把窗口、菜单、按键、文字说明等对象结合在一起,就构成一个用户界面。用户只需通过鼠标或者是键盘与计算机前台这些控件发生交互,而所有运算、画图等操作都封装在了内部,用户无需了解这些复杂的代码执行过程。图像用户界面大大提高了用户使用程序的

2、简单和方便性。不同的用户针对不同的需求,设计出的界面是千差万别的。设计一个界面时一般考虑以下四个原则。,(1)简单性 简洁而又清新的体现界面功能和特征,避免杂乱无 章。(2)一致性 界面要求和已经存在的界面风格保持一致。(3)习常性 设计时,尽量使用大家熟悉的标志。(4)其他因素 主要是指界面的动态性能,包括界面的响应速度,运算过程中是否允许中断等等。,魁字现杯赶良橱或嗽鸣喧珊枉眷豁壮瘩鬃姨作寅搅醋犯俏砒等词戒殷阜雅数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,为了能获得比较满意的图形界面,在设计过程中一般执行如下操作步骤:(1)明确设计任务,对设计的界面所

3、要实现的功能清晰明了。(2)构思草图,按照上述设计原则,上机操作实现。(3)编写相应的程序代码,实现各项功能。,针对MATLAB,GUI的实现有两种方式:一种是基于全脚本的实现,全脚本方法实现的GUI是利用uicontrol、uimenu、uicontextmenu等函数编写M文件的方式来开发的,具有可以充分反复使用同一个M代码,具有代码的通用性高等优点,可以建立比较复杂的界面。另外一种方法就是基于MATLAB自带的GUI设计工具GUIDE设计方法,这种方法虽然相比全脚本的方法在复杂度和美观上有所差距,但是设计比较简单,相关控件可以随便拖用,使用比较方便,并且思路清晰,容易操作,在要求不是很高

4、的时候,是一种首选的创建方法。在这里,主要介绍一下后者方法。,牡返锗胺菩柴燃栋瞳疙互翅驮涵泉屋殆氧葵槛禄聚竟笑漆氮保程敌门吏赏数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,7.1.1控件对象的创建及其类型,首先确定使用较新的MATLAB版本,较低版本没有工具编辑器,本文使用的版本是MATLAB R2010b。1.4节中,我们已经介绍了MATLAB各个窗口还有工具栏,菜单栏,下面开始制作界面。首先运行MATLAB软件,如图7.1.1在(Command Window)命令窗口输入guide命令,或者在工具栏点击 ,会弹出GUIDE设计界面,用户可以选择创建一个新

5、的GUI程序或者打开已有的GUI程序。如图所示。,蜕袜赂伍霞健颂酵痛器诌醛衙熙馒淖属银漠蔷阅兼施梧盯食笺抹休雪抿或数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,“guide”命令打开GUIDE,祥眷瞧肇雀自倔犁签退壕胡倦大幌薛呈嘱忘抽波千贴往俯闷叼韧钠领户滑数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,“GUI Quick Start”对话框,砾闽匝佰胞坎筒股脖蚀吧苑盐坷呕谩咸书令般丑坎氯涂丁酮括逮肮彩脆充数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,可以看到,MATLAB给提供了4种新

6、建界面类型:(1)空白模版(Blank GUI)(2)带有控件对象的GUI模版 ( GUI with Uicontrols)(3)带坐标轴和菜单的模版 (GUI with Axes and Menu)(4)带模式问题对话框的模版 ( Modal Question Dialog),我们可以根据自己需求的不同来选择使用不同的模版,这里,我们单击选择使用默认的空白模版“Blank GUI (Default)”,然后点击OK,就会出来我们要进行操作和设计的GUIDE界面。,履亢潘椎儿船辨先艇兑拍倾竭伪巫乔相泰碧箱毖胀筑只棉衰闹珐厢镇天仑数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MAT

7、LAB)第7章,GUI空白设计模版界面,俱铰贬炕凰茫连土掏双釉缘泌祭坯暗甭垂少弘呵桅伯蔬肿抖疵隧犀仪骏吐数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,图所示设计工作界面包括4个功能区:其中菜单条与编辑工具条位于界面顶部;控件模版区位于界面左侧;中心为GUI设计工作区。菜单栏提供了许多在此界面下操作的菜单项,包括File、Edit等操作。工具栏中的按钮从左到右依次为:新建、打开、保存、剪切、复制、粘贴、撤销、返回撤销、对象分布和对齐、菜单编辑器、M文件编辑器、对象属性设置窗口、对象浏览器和GUI运行按钮。左侧控件模版主要包括:按钮(Push Button)、滑

8、动条(Slider)、单选按钮(Radio Button)、复选框(Check Box)、文本框(Edit Text)、文本标签(Static Text)、下拉菜单(Pop-UpMenu)、下拉列表框(List Box)、双位按钮(Toggle Button)和坐标轴(Axes)、ActiveX控件(ActiveX Control)等。,粱砖巴双铬淹像盗州窥侮脆始乱宛来是入墩赏鹰贝牡冰紫伶孰沁犊龄氨柯数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,其中,控件面板的外观可以通过设置GUIDE的属性进行简要的修改,选择GUIDE中File菜单下的Reference

9、命令,在弹出的对话框中选择“Show names in Component Palette”复选框,如图操作所示。,GUIDE属性对话框,密心孤非昨蹭析渡阂糯肋朋喧娠带裸蔬挑肋粟饯顽腕怨丁峦劝诛厨萍吐沪数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,单击OK,控件面板中在不同的控件旁边会显示相应控件的名称。如图所示左侧控件显示方式已发生变化,更加清晰直观。,GUI空白设计模版界面,谅暴负百养用噪跌泵尸漫承舔衔城狱吾济杨蝉醉赦回约羡姑税撬涸靠糜蒙数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,控件是事件响应的图形界面对象。MAT

10、LAB中的控件大致可分为两种,当鼠标点击该控件时会产生相应的响应, 称为动作控件,如按钮、滑动条等。另一种为静态控件,是一种不产生响应的控件,如文本框、文本标签等。就上述主要控件,简单的介绍一下主要控件的功能和应用场合:,(1)按钮(Push Button)主要是响应鼠标的单击事件,执行预定的功能。(2)滑动条(Slider) 主要是通过滑动条上的方块位置来改变向程序提供的数值的大小。(3)单选按钮(Radio Button) 用于实现同一属性项在多项取值之间的切换,经常是多个一组联合使用。(4)复选框(Check Box) 复选框和单选按钮类似,单个的复选框用来在两种状态间切换,多个复选框组

11、成一个复选框组时,用户可以在一组状态中作组合式选择。(5)文本框(Edit Text) 文本框用于为程序运行提供输入参数,支持用户通过键盘输入字符串。,摈榷藐车奸第九脯中送堆回绸臣铃浪敬擅邹小牛谗饼大焦奎眩阂散弟隧献数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,为了更好地了解界面的操作,至此,我们先执行一下工具栏保存方式,将上述.fig文件保存为by_me.figure。点击GUI运行按钮 ,运行结果如图,(6)文本标签(Static Text)文本标签是显示固定字符串的标签区域,用于为其它组件提供解释和说明。(7)下拉菜单(Pop-UpMenu)下拉菜单的

12、使用可以选择其中的一个项目来设置程序运行时需要的某个输入参数的取值。(8)下拉列表框(List Box) 用户可以选择其中的多个项目来设置程序运行时需要的输入参数。(9)双位按钮(Toggle Button)主要用于相应鼠标单击事件,一般用于后台程序运行、终止等。(10)坐标轴(Axes) 是图形化显示后台程序运行输出结果的区域,用于显示图像和图像。(11)ActiveX控件(ActiveX Control) 主要用于MATLAB和其他应用程序的交互。,结巩宛蹈蒜窄侣偏蔚植剿攘斋望票间和屏望滴船划钞埠拢油沿辊初奋幢艘数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7

13、章,可以看到,这是一个名字为“untitled”的空白界面,如果想让这个界面丰富起来,执行更多操作的话,就需要添加上述控件。控件的添加可直接由鼠标选取该控件并拖拽至指定的GUIDE工作区内即可,大小可通过鼠标拖拽对象四周的黑点来调节。同理,整个GUI窗口的大小也可以通过鼠标拖拽窗口右下角的黑点加以控制。添加了两个坐标轴,一个文本框和静态文本框标签 ,还有一个鼠标响应按钮。通过使用工具栏 按钮可对鼠标选中的控件进行各种对齐操作。,初始运行界面效果,慷誉洗倦澄捕短红菜糜火疫惯吼蜗均羚务骇霉狮柯蘑哇善沁水挂镜维昭必数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,对齐

14、方式窗口,喘先饲琵址拥卵档蛰该糟夯欧膜悸疆搽古妇斩屹耸骸拆灿坊歼巳倚铀孕粟数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,绘制控件,早哆鸿佰厅木绊把掇骤钉雅搭匿牢剂鸳叛哑凭耪评的昆媚桓坯硫躁扑够付数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,7.1.2控件对象的属性,每种控件都有一些可以设置的参数,用于表现控件的外形、功能及效果,即属性。属性由两部分组成:属性名和属性值,它们必须是成对出现的。双击该控件或者是借助右击鼠标调出“Property Inspector”属性设置窗口,那么为了能充分发挥出这些控件的功能,需要对不同控

15、件的属性值进行设置,达到自己要求的效果。不同控件属性稍有不同,以坐标轴控件为例打开其属性窗口,如图所示。,拾岿恍书侈纲孪规捞攻抚玄揉颧熏补玖她咨锡萄遏甜可彭遍悲白酒稼于喳数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,下面简单介绍一下各种控件主要的属性含义:,BackgroundColor:3元素的RGB向量,默认背景色为浅灰色,点开左边“+”,可根据需求更改颜色,也可以点击该栏后半部空白处进行设置背景颜色。 Callback:MATLAB回调函数,初始值为空,有效值为字符串;该属性定义当鼠标单击该对象时所要执行的操作,当用户激活某个控件对象时,应用程序就运行

16、该属性定义的子程序。 CreateFcn:有效值为字符串。用于定义当MATLAB建立一个菜单对象时所必须要执行的操作。 DeleteFcn:有效值为字符串。用于定义当用户删除一个对象时,MATLAB在该界面前更动前必须执行该操作。 Enable:使能设置,有效值为on或off,默认为on。决定了该功能是否激活。 FontSize:设置字体大小。 FontUnits:位置属性值得单位。通过右方 可选择:inches(英寸)、centimeters(厘米)、normalized(归一化坐标值)、points(打印设置点)、pixel(屏幕的像素)。,躯宫泄嘻斯解曾魂罕牛辰复缉勺蛋畅浅兼呛然钵酬锌噬

17、从藉臭一亭袖刹幸数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,FontWeight:修改字体,点击右方 进行选择。 ForegroundColor:MATLAB的一个预先定义的前景颜色设置,默认为黑色。 Max:属性Value的最大许可值,默认值为1。 Min:属性Value的最小许可值,默认为0。 Position:位置向量x y width height,用以调整控件的位置和尺寸。 String:取值为字符串,定义控件标题或选项内容。 Tag:有效值为字符串;当MATLAB搜索符合的对象时,该对象就是利用Tag属性来描述的,是一个控件的身份标识。 Val

18、ue:当单选按钮和复选框在“on”状态时,Value为Max,否则为Min。文本对象和按钮不设置该项。 Visible:有效值为on或off。设定对象的可见性。在控件里默认为on。,犯淬仍贰聘症干傀莱沦崖般剑滓卖审赫日耕兄究额责部伸簧痰祟蛊抠栖培数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,在了解了上述控件属性后,分别对图7.1.9各个控件进行属性设置,其中最重要的为Tag和String属性。两个坐标轴Tag属性分别设置为axes_1和axse_2;静态文本框Tag属性设置为text4,为了美观,将其String属性设置为空;文本框Tag属性为text_ed

19、it,同理,String属性为空;按钮Tag属性为默认,String属性为“清空”,字体为默认属性,大小由属性FontSize设置为12。如图所示。,泉芜叙翁旷盒凡衔诌赞谴钉谊硷谴颁衔鬼撑渺憋鳖植丧酋若腆撑斟肖霹硬数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,最终界面效果,右蹄铸控东设犊赤豆灌乾蚌里衣翘憨竹帐瞒弛膜藤嚎观虱庸檀辱捻棘搐般数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,同理,在界面空白处,右击鼠标,选择“Property Inspector”,或者双击鼠标,可以打开属性窗口,部分属性与控件属性相同。在此对窗口的

20、属性进行操作,如图,修改当前figure窗口的Name属性为:图像处理界面;Tag属性为:figure_by_me。,GUI属性设置,延芯寇阜囤对榔狮确趟恰挎罕赃塞锰啊武啮耿赞唱宝粳兜捏街碉鼎渤淘却数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,7.2 菜单及快捷键的设计,利用菜单编辑器,可以创建、设置、修改下拉式菜单和现场菜单(Context Menu),通过这些菜单的使用,可以方便的执行某些操作,给用户带来很大的方便。,7.2.1 菜单的设计,图中,各个控件已添加完毕,属性也设置完成,接下来是添加菜单栏和工具栏。点击工具栏上的菜单编辑器按钮 (Menu E

21、ditor)或者由GUIDE菜单选取【Tool】下面的【Menu Editor】,可以打开菜单编辑器,如图所示。,粹牌渗柒邹砒曰顺须钠鳞堤银铺窑荒濒卓披玫暑虞贝贼抉盔钡蜗僻你开邀数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,图7.2.1 菜单编辑器,在该菜单编辑器左下角,显示有两种菜单类型:Menu Bar和Context Menus,其中前者主要用于建立一般的菜单,后者主要用于来建立界面中执行单击鼠标右键所显现的菜单。根据需求,这里选择默认的Menu Bar。,刊樱涣蜀蓟哇臀肋班场拭筋滴咸灵颜昨刽减牵芬辱铆惟神蹄帮护效造拼烙数字图像处理及应用(MATLAB

22、)第7章数字图像处理及应用(MATLAB)第7章,单击按钮 (New Menu)可以新建菜单项。如图,其中图的右方为菜单编辑器内设的菜单属性设置区域。,菜单编辑器窗口,帘深挂将厂协椭浸歪凶伯漂却哺祖慢川浇螟椰馁腮鞍还亡搀匡录任罚陋唇数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,Label:输入在菜单中要出现的名称。Tag:同上,描述该菜单的身份属性。Accelerator:Ctrl+:该功能可以通过右边 下三角标志,点击后选择并设置快捷键,用户在按下键盘Ctrl和指定快捷键时会执行该菜单的功能操作,选择 “None”表示不设置快捷键方式。Callback:默

23、认的“Callback”文本框是输入%automatic,这样在执行GUI时,自动在该M文件中加入一个空的Callback子函数,用户可以方便的在该M文件编辑器中编辑Callback函数。同时也可以在该文本框中输入要执行的操作语句,但是代码长度会受到限制。View按钮:用户可以点击打开该M文件中对应菜单的Callback函数位置,进行编辑代码。了解了菜单的属性后我们新建一个菜单,Label名称修改为:文件,Tag属性为拼音wenjian,其它选项设定为默认,如图所示。,蕊鞭工渺砚餐内堤皂抹讨腔趣刷皖是每讲弟扳拦便牺微炬崔牵扦虹贝轿并数字图像处理及应用(MATLAB)第7章数字图像处理及应用(M

24、ATLAB)第7章,编辑菜单,边壮基技享仕朋嫩亨漱獭烟图张琼靳罚施爸颓理诣经哪谷锗楔护岩漫谤她数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,文件菜单项下面我们可以增添其它子菜单项,单击图标 ,添加打开、与退出子菜单,设置Tag属性分别为dakai和tuichu,对应菜单快捷打开方式设置为Ctrl+A和Ctrl+B,同理添加图像几何变换、图像增强、形态学处理、图像分析、频域变换、边缘检测和帮助文件主菜单,并添加图像几何变换子菜单为图像平移、镜像变换、旋转变换,添加图像分析子菜单图像欧拉数和面积,并设置相应的Tag和快捷菜单属性。其中在其中 和 可以改变所设菜单

25、是父选项还是子选项, 和 可以改变菜单的排列顺序。最右边的 用于删除选中的菜单项。如图所示。,洛盒溉肉崭砌郸弛险侗亦椽蛙合存课大卉摇鹅懈椭呐娱榴杆弦挫券沃冬谴数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,菜单编辑最终效果,雪瞎翁完苛沮赵橇臀哺涅素蜗便官舍室腿擒胞瓷彩缎咬粕朽擦琐砍煤沥齐数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,这样我们就完成了菜单栏的设计了,用户可以在此过程中随时保存并运行来查看菜单设计效果。此时运行GUI,效果如图7.2.5.,菜单栏执行效果,酸杖斜潍锚旦痈凉甥奠消煽杨捌垫浓踊屯剖蛊算耕纲碑畏赏隅版槽

26、渠盗租数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,7.2.2工具栏快捷键的添加,点击figure窗口工具栏图标 (Toolbar Editor),会打开工具栏快捷方式编辑页面,以添加打开快捷工具菜单为例介绍添加方法,鼠标选中左边半框Tool Palette里Predefined Tools的 图标,点击Add按钮,设置其Tag属性为dakai2,如图7.2.6所示。,同理,添加 保存按钮、 打印 、 和 按钮,设置保存和打印的Tag属性分别为baocun和dayin,同时注意到,在设置Tag属性下面有Clicked Callback项,点击右边的View可

27、快速定位到该工具按钮的Callback函数位置,实现快速添加代码。,痞纲狞顺嚏掸梧捶象甚揣翻骸励腋箍吞刊可申派童声茁牧负台尚莹叫畦酵数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,工具栏编辑窗口,撵郊畸衙跪具迹目堡佬丙绒阳壕钞归澈暑柔痴酿憋厅否啤卵斤劣粪屡艘憨数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,这样,工具栏按钮就添加完成了,点击GUI执行按钮 ,这时一个整齐的界面就显示出来了,。其中界面标题为中设置的Name属性。,工具栏执行效果,韶皮距塘镇俺噪振糖桐抒凉勋渗搞尹曲帆慨悯滑峭逊扰挖撕媳励毒饭标刀数字图像处理及应用(

28、MATLAB)第7章数字图像处理及应用(MATLAB)第7章,读者会发现,上面在执行或是存储该界面的同时会自动产生一个by.me.m文件,这个文件里面包含了所有对象的Callback函数,也称回调函数。除此之外还有两个函数,分别为:by_me_OpeningFcn和by_me_OutputFcn。其中by_me_OpeningFcn相当于界面初始化函数,主要用以执行GUI界面显示前所必须做的准备操作,即一般程序开始执行前的一些初始设置值,发挥着至关重要的作用,在下面的编程实现中,为了避免对图像进行处理时每次都要重新读入该图像,我们需要在此函数下将读入的图片共享,用setappdata函数来实现

29、,而后,在每个处理工程中只需用getappdata函数来获得该共享图片进行后续操作即可,详细操作见后续软件设计部分;by_me_OutputFcn为界面输出函数,此函数在不运行.fig文件,而直接运行.m文件时输出返回值。,祝塞秋轮振显蝶临墓纲必钙殴蜘斩已桌码容萧东谨框写迂伍朴非训晾用肉数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,M文件窗口,坠脐幂醉戮流够斑骆嘎漏炙锭制柑半幂斋迹谭弱几椿对歌耶豆辊吉惹守伞数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,各对象或是控件的Callback函数名称比其Tag属性名称多了一个后缀_

30、callback,如:olashu_Callback为执行平移操作菜单的回调函数名,如图中其Tag属性为olashu。通过在各自对象的Callback函数下面输入相应程序代码来响应相应控件的操作。在图窗口中,单击工具栏图标 向下的三角图标,如图所示,可以看到各个对象的回调函数或者是一些其它初始化函数,通过选中相应的回调函数选项可以快速跳到对应函数位置进行添加代码。,驾蕾锦绞包沃镶襟匀匪球啥坤洗澜啤航仗艺方郎床霓篡捂母莱朗安肪串变数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,M文件编辑,梨嘉昔奥刽悲退涕瞻逻锌颧有锣爵坊榔祥桔因坍把陡嗽氯岿嗣冤蹈歉览卓数字图像处

31、理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,7.3软件设计技术分析,7.3.1 软件设计实现,1. 图片的读入,首先,应先读入图片,并将其显示在第一个坐标轴上,处理后的图像显示在第二个坐标轴上,形成对比。MATLAB中读入函数为imread,打开对话框函数为uigetfile,具体用法用户可通过help指令进行了解。可以通过菜单编辑器View方式或者是通过快速打开“文件”中的“打开”菜单的Callback函数,在此添加打开对话框函数来激活打开命令,添加代码如下所示:,function dakai_Callback(hObject, eventdata, handle

32、s) % hObject handle to dakai (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( .*.bmp;*.jpg;*.png;*.jpeg, Image Files (*.bmp, *.jpg, *.png, *.jpeg); .,髓瘟塌两蛔辙缉暂婿耕墓扦冕扫臂聊多哑昧已拽瑟栏膝靳裂矗焉

33、朵引悸哼数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,*.*, All Files (*.*), .Pick an image);%uigetfile为打开对话框函数 if isequal(filename,0) | isequal(pathname,0) %判断路径是否取消return; end axes(handles.axes_1); %用axes命令设置当前操作为axes_1坐标轴 fpath=pathname filename;%将路径名和文件名合成一个完整的路径 img_1=imread(fpath);%读入该路径下的图片 imshow(img_

34、1);%显示图像 title(原始图像);,因为添加的工具栏打开方式和菜单打开方式实现的是同种功能,所以为了简洁,在工具栏快捷打开方式的回调函数中添加代码,利用函数feval在点击 时,执行菜单打开方式的响应函数,如下:,抵蜜盒低便稚任确载桐辐涵雅龟皿奋悬逐伟橡消氯财朽弛冲缺鲁悸误好庄数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,function dakai2_ClickedCallback(hObject, eventdata, handles) % hObject handle to dakai2 (see GCBO) % eventdata reser

35、ved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) feval(dakai_Callback,handles.dakai,eventdata,handles); %利用feval函数将其带入到定义好的,功能一致的句柄中,其中每个回调函数下有三行代码为系统自带,为提示信息,读者也可将其删除。点击保存并运行,再在打开“文件”中“打开”或者是点击快捷打开方式图标 ,也可以使用之前设定的快捷打开方式Ctrl+A,就可以打开任意路径下的

36、图片,如图所示。,睦绍拈苗恤环嘛呈普梭贤佰拈牌况巧谆糟喜犊蠢藻臃屯豪笺霜荆健电供觉数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,读入图片,简喊阅誓缆翁苹凸宝处闰腕蒸块睬常祝愧子契束祭锦氓候滩纸皇的梗尊件数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,2. 图像平移操作,为了提高代码的使用效率和简洁性,即在进行不同图像处理操作时都不必要重新用imread函数读入图像,那么需要对上述读入的图像进行共享,在函数by_me_OpeningFcn下面添加代码:setappdata(handles.figure_by_me,img_1,

37、0);%共享读入的图片在“打开”菜单代码后添加: setappdata(handles.figure_by_me,img_1,img_1);那么在以后的处理项中,可以直接通过下述语句获得所要处理的图像。 img_1=getappdata(handles.figure_by_me,img_1);获得读入图像以后,接下来就是对其进行处理,以实现“图像几何变换”菜单下的“平移变换”操作为例作为介绍。定位“平移变换”菜单的Callback函数并添加如下代码:,烘靡忆煌玫苦魄扭览牟缩侧妄于接澡冉操历酚歉绥在忆殉绒凯济遂向堰蝶数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章

38、,function pingyibianhuan_Callback(hObject, eventdata, handles) prompt=X(0-167),Y(0-167); title=平移变换阈值;%输入对话框标题 defaults=0,0; xy_cells=str2num(char(inputdlg(prompt,title,1,defaults);%取出对话框内参数 if isempty (xy_cells) %对话框输入为空msgbox(您为执行平移操作,提示,help); %信息对话框 else x=xy_cells(1);y=xy_cells(2);axes(handles.

39、axes_2);img_1=getappdata(handles.figure_by_me,img_1); img_2=double(img_1); img_2_M=zeros(size(img_2); H=size(img_2); move_x=x; move_y=y;,架补靳忍蝶鞘附维幢袭怨刻邹在犊眺村粱炮爵钳娜朋赌边无誉饱冠恨啊碱数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,if (size(img_2,3) = 1) %是否为彩色 img_2_M(round(move_x)+1:round(H(1),round(move_y)+1:round(H(2

40、),1:round(H(3)=img_2(1:round(H(1)-round(move_x),1:round(H(2)-round(move_y),1:round(H(3);%平移操作 else %灰度图像 img_2_M(round(move_x)+1:round(H(1),round(move_y)+1:round(H(2)=img_2(1:round(H(1)-round(move_x),1:round(H(2)-round(move_y); end imshow(uint8(img_2_M); end;,亨枷蚁切萧畦嘻宅旁葡痞爆伺兵戒抑亦厄七脑掣隐良患水赐另翰沙型罗定数字图像处理及应

41、用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,点击保存,运行程序,当选择“平移变换”菜单时,会弹出如图7.3.2所示对话框,设定水平平移30个像素,垂直平移65个像素如图7.3.3,点击“OK”,处理结果如图所示。,输入对话框,输入平移变换参数,剥莹夕企保谰弗伺虫撼绕单傈孤窑成抽稚康蜜欠燎历渍萌夸历蜜茵薯写剥数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,平移变换,拯干澈罪管让珍商宗疑事碑涣圃培夏杆律驮亩列麻将水赋斜截阶乍垫趟街数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,3GUI内置对话框,使用这些内置

42、对话框,可以简化开发流程,使得界面在操作上富有弹性和人性化。MATLAB提供了许多内置GUI对话框,比如说菜单对话框、信息对话框、问题对话框、输入对话框列表选择对话框等等。本处理过程中,运用了“输入对话框”和“信息对话框”。,迅迪沟退弟爱庸胁嗜搅役避呆绵篱琵孵诈植育履便浅酸胡布袋痰秆棵挺泵数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,在MATLAB中可以通过inputdlg函数建立输入对话框,句法格式为:Answer=inputdlg(提示语,标题,输入框间距,默认值,PropOpts)其中PropOpts为选择性参数,有以下对应值实现不同功能:(1)Res

43、ize:通过设置为“on”或者“off”来决定该对话框的大小是否可以改变。(2)WindowStyle:通过设置为“modal”或者是“normal”来选择对话框的类型。(3)Interpreter:通过选择使用“tex”或“none”来设置是否为符号显示。,矗铸煎肝穆游强摈逢捞谭页蜂姨杏骨竭戎广疽妥午扯弱绿耳芍黍佃腺诣它数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,程序中msgbox为建立内置信息对话框函数,在执行操作过程当中,告知用户程序上的一些相关信息,方便其操作, 帮助文件或是信息对话框的使用,使得界面富有人性化,所以建立帮助文件或者是建立信息对话框

44、是很有必要的。这种信息对话框有很多图标,如:error(错误提示图标)、warn(警告提示图标)、help(帮助提示图标)等,分别对应着helpdlg、warndlg、errordlg等函数来实现,如error对话框提示程序运行出错信息,调用errordlg来实现,格式为:errordlg(要提示的出错信息,对话框名称,on),其中参数on表示是否替换已经存在相同名字的错误对话框。例如在命令窗口中输入:errordlg(程序出错,错误提示,on);,刺跌掏宋吏同卢代滁卓净翔租劳蚤庶与绍斥服吾沛言溃署捏卫蕊伺正驳禽数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,

45、以上所有的函数实现的各种对话框均可以由msgbox函数代替上述函数来实现,函数的语法格式为:msgbox(信息,标题,对话框种类),错误提示对话框,歌灌猛移玄轻亭运脚笑弘刚冯这尾赵呆抹煎挪转查西侈挛蔬姥咳胚免陌哨数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,信息提示对话框,又例如我们在菜单中的帮助文件中要添加一些说明,目的是为了让其他用户知道该怎么操作这个界面或者是介绍一下软件的功能和遇到一些问题和开发者联系等等,可以通过使用msgbox函数来实现。同理,打开并找到“帮助”菜单的Callback函数,在下面添加程序如下:,玻邱娘蒂役嘲躺瞎碳购藕底莫呸癸熟绿替

46、椒帝睛须恋爽叶椎漳酬誉角嘉荆数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,function bangzhu_Callback(hObject, eventdata, handles) % hObject handle to bangzhu (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) s=sprintf(“清空”按钮用于清空显示结

47、果。nn.作者联系方式:1234567nn); msgbox(s,帮助,help);,只坦苔蕴囤酝侣都廊息咽莹岿依渝俭涕询氖漓家尘沦家靴棒死费累诣缸侨数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,4图像的保存,图像处理完成后,如果需要将所处理结果进行保存,这时需要使用保存功能,这里我们介绍一下 保存快捷菜单的使用。定位至Tag属性为baocun的Callback下,在下面添加如下代码,即可完成保存功能,如图7.3.8所示。,function baocun_ClickedCallback(hObject, eventdata, handles) % hObje

48、ct handle to baocun2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) fstSave=getappdata(handles.figure_by_me,fstSave);filename, pathname = uiputfile(*.bmp,BMP files;*.jpg;,JPG files, Pick an Image);%保存对话框函数if

49、isequal(filename,0) | isequal(pathname,0)return;%如果点击取消 else,唬吴摹消褒探局汝煽蔑躺访强昔戚卿洲吧掩梆亥鱼婶讹癌掉虫舔哑闯乎柯数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,fpath=fullfile(pathname, filename);%重新获得路径endimg_2=getimage(handles.axes_2);%在坐标轴2上操作fpath=getappdata(handles.figure_by_me,fstPath);imwrite(img_2,fpath);%保存图片,保存路径,魁俱挪郑嫁凄磐外饿游你傻织巧妙悄室驾潘豁但粕叮济噬袄蚌厌井闻纫畔数字图像处理及应用(MATLAB)第7章数字图像处理及应用(MATLAB)第7章,5文本框、静态文本框的使用,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报