资源描述:
《matlab交互式程序设计示例:[6]gui界面编程1》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、matlab交互式程序设计示例:[6]GUI界面编程1MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。图形用户界面(GUI)是用户与计算机程序之间的交互方式,是用户与计算机进行信息交流的方式。工具/原料MATLABguide工具箱方法/步骤1、我们要进行的程序是彩色图像处理试验示例,用这个程序來练习我们的gui前台设计。程序功能介绍:具有彩色图像处理及保存和音乐播放功能效果如下图2、在MATLAB的命令窗口小输入guide命令,打开guideq
2、uickstart窗口,选择createnewgui点ok牛•成新的fig文件如卜•图:3、右点窗口,打开属性设置修改figur窗口名字,点name项就可以改我们改为xiaobotest.fig,而后我们在窗口中拖进來,和儿个按纽用于交互程序的事件触发,做成前台如下图4、前台部分接下来我们还要进行窗口菜单的制作,点tools选择menueditor5、接上面的操作出现一个窗口点newmenu,选中这个项接着再点newmenu就可以为它加目录项了,选中untiledl可以看到它的属性可以修改了label是用于显示文字说明用的tag相当于句柄一样用于操作的下而我们改打开表项的tag值
3、为open如下图6、经过上面的几步操作就完成菜单制作,功能上就具有打开文件保存音乐播放停止等如下图7、下面进行各各菜单项的事件操作,点view就可以打开callback函数functionopenfile_Callback(hObject,eventdata,handles)这个就是打开操作对应的函数我们加入如下代码8、后的各各操作如同上面一样加入一下代码分别为保存rgb操作图片和hsi操作图片functionsavergb_Callback(hObject,eventdata,handles)functionsavchsi_Callback(hObjcct,cvcntdata,
4、handles)9、对于按纽操作,例如rgb直方图操作我们把放到rgb直方图上点右键如下图代码如下functionpushbuttonrgb_Callback(hObject,eventdata,handles)10、技术细节说明:其中实现菜单可选不可选用的是set(handles.savefile,Enable,off);sct(handlcs.savergb,Enable,off);set(handles.savehsi,Enable,off);set(handles.saveph,Enable,off);set(handles.savejr,Enable,off);其中sa
5、vefile是保存菜单的tag值,比如我们操作了总方图就可以在显示后执行如下代码set(handles.savefile,Enable,on);set(handles.savergb,Enable,on);这样就可以实现菜单的兀余操作了11、特别说明:在菜单选项小加入音乐播放功能打开制作好的咅乐功能菜单的并修改callback函数functionstartCallback(hObject,eventdata,handles)%hObjccthandletostart(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofM
6、ATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)[y,Fs,bits]=wavread(dl.wav);%获取音乐数据ao=analogoutput(winsound);%建立硬件对象addchannel(ao,[l2]);%创建声音输出通道set(ao,SampleRate,Fs)%设置采样率datal=y(:,l);%双声道data2=y(:,2);putdata(ao,[data1data2]);%往声卡堆音乐数据%输出音乐数据setappdata(handles.figurel,ao,ao);start(ao
7、);%……functionpause_Callback(hObject,eventdata,handles)%hObjecthandletopause(seeGCBO)%eventdatareserved・tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)ao=getappdata(handles・figure1,ao);stop(ao);运行的界面如下图:可