1. 我们要进行的程序是彩色图像处理试验示例,用这个程序来练习我们的gui前台设计。

    程序功能介绍:具有彩色图像处理及保存和音乐播放功能效果如下图

  2. 2

    在MATLAB的命令窗口中输入guide命令,打开guidequick start窗口,选择create new gui   点ok 生成新的fig文件如下图:

  3. 3

    右点窗口 ,打开属性设置修改figur窗口名字,点name项就可以改 我们改为xiaobotest.fig,而后我们在窗口中拖进来,和几个按纽用于交互程序的事件触发,做成前台如下图

  4. 4

    前台部分 接下来我们还要进行窗口菜单的制作,点tools选择menu editor

  5.  

    接上面的操作出现一个窗口 点new menu ,选中这个项 接着再点new menu就可以为它加目录项了 ,选中untiled1 可以看到它的属性 可以修改了label 是用于显示文字说明用的 tag相当于句柄一样用于操作的 下面我们改打开表项的 tag 值为open 如下图

  6.  

    经过上面的几步操作 就完成菜单制作,功能上就具有 打开文件 保存  音乐播放 停止等如下图

  7.  

    下面进行各各菜单项的事件操作,点view(查看)就可以打开callback函数

    function openfile_Callback(hObject, eventdata, handles)这个就是打开操作对应的函数  我们加入如下代码

  8.  

    后的各各操作如同上面一样 加入一下代码 分别为保存rgb操作图片和hsi操作图片

    function savergb_Callback(hObject, eventdata, handles)

    function savehsi_Callback(hObject, eventdata, handles)

  9.  

    对于按纽操作,例如 rgb直方图操作 我们把放到rgb直方图上点右键如下图代码如下

    function pushbuttonrgb_Callback(hObject, eventdata, handles)

  10.  

    技术细节说明:

    其中实现菜单可选不可选用的是

    set(handles.savefile,'Enable','off');

    set(handles.savergb,'Enable','off');

    set(handles.savehsi,'Enable','off');

    set(handles.saveph,'Enable','off');

    set(handles.savejr,'Enable','off');

    其中savefile是保存菜单的tag值,比如我们操作了直方图就可以在显示后执行如下代码

    set(handles.savefile,'Enable','on');

    set(handles.savergb,'Enable','on');

    这样就可以实现菜单的冗余操作了

    全部操作后的效果如下图:

  11.  

    特别说明:在菜单选项中加入音乐播放功能

    打开制作好的音乐功能菜单的并修改callback函数

    function start_Callback(hObject, eventdata, handles)

    % hObject    handle to start (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    [y,Fs,bits] = wavread('dl.wav');   %获取音乐数据

    ao = analogoutput('winsound');  %建立硬件对象

    addchannel(ao,[1 2]);                %创建声音输出通道

    set(ao,'SampleRate',Fs)           %设置采样率

    data1 =y(:,1);                            %双声道

    data2 =y(:,2);

    putdata(ao,[data1 data2]);   %往声卡堆音乐数据

    %输出音乐数据

    setappdata(handles.figure1,'ao',ao);

    start(ao);

    % --------------------------------------------------------------------

    function pause_Callback(hObject, eventdata, handles)

    % hObject    handle to pause (see GCBO)

    % eventdata  reserved - to be defined in a future version of MATLAB

    % handles    structure with handles and user data (see GUIDATA)

    ao=getappdata(handles.figure1,'ao');

    stop(ao);

    运行的界面如下图:可以选择停止播放,或者在音乐放完后可以再点播放接着听音乐,放松工作时间啊

  12.  

    菜单项目的功能有打开,和保存两个打开是打开图片,保存是保存你处理的各种图像,没有打开图像前保存菜单是不可选的,这四种处理没有相应的处理时也是不可选的如下图

  13.  

    点RGB直方图均衡button可以看到显示到了相应位置上,此时保存菜单里的保存RGB直方图均衡图像可以选择

  14.  

    程序完整的运行效果如下图,保存hsi直方图到桌面操作

  15. 到此,整个matlab gui 界面设计就完成了,本人记录的笔记仅供参考,有什么错误之处,还望指出。

matlab gui界面设计记录的更多相关文章

  1. MATLAB GUI界面设计------“轴”组件配置

    1> Fontsize            10         %字体大小 2> FontUnits           normalized      %采用相对度量单位,缩放时保持 ...

  2. MATLAB(3)——GUI界面设计入门

    作者:桂. 时间:2017-03-01  18:43:35 链接:http://www.cnblogs.com/xingshansi/articles/6485688.html 声明:转载请注明出处, ...

  3. matlab GUI界面编程总结

    去年做了一些关于Matlab GUI的程序,现在又要做相关的东西,回想起来,当时很多经验没有记录下来,现在回顾起来始终觉得不爽,所以从现在开始,一定要勤写记录. 从简单的例子说起吧. 创建Matlab ...

  4. PyQt5多个GUI界面设计

    版权声明:本文为博主原创文章,转载 请注明出处:https://blog.csdn.net/sc2079/article/details/90454379 - 写在前面 本科毕业设计终于告一段落了.特 ...

  5. Matlab GUI界面

    做SVD的时候,看学姐的demo,用到了matlab的GUI,感兴趣就自己学了一下: 从简单的例子说起吧. 创建Matlab GUI界面通常有两种方式: 1,使用 .m 文件直接动态添加控件     ...

  6. MATLAB图形界面设计(下)

    文章参考Blue Mountain https://www.cnblogs.com/BlueMountain-HaggenDazs/p/4307777.html 一.菜单设计 1.建立菜单项 (1)建 ...

  7. python3下GUI界面设计之控件精确定位

    #codeing:utf-8import tkinterimport tkinter.messageboxfrom tkinter import filedialogfrom tkinter impo ...

  8. MATLAB图形界面设计(上)

    参考https://www.cnblogs.com/BlueMountain-HaggenDazs/p/4307777.html 一.图形句柄 1.定义 MATLAB在创建每一个图形对象时,都会给该对 ...

  9. MATLAB GUI对话框设计(转载)

    原文地址:http://blog.csdn.net/shuziluoji1988/article/details/8532982 1.公共对话框: 公共对话框是利用windows资源的对话框,包括文件 ...

随机推荐

  1. java引用传递,值传递

    2个interger的引用对象传给一个swap方法在方法内部进行交换 1.1 java中方法参数传值方式 java中方法传参数都是值传递的,只不过根据参数的类型是引用类型还是非引用类型 引用类型传递的 ...

  2. 常见python面试题-手写代码系列

    1.如何反向迭代一个序列 #如果是一个list,最快的方法使用reversetempList = [1,2,3,4]tempList.reverse()for x in tempList:    pr ...

  3. uni-app中nvue (weex) 注意事项

    前言 uni-app 是 DCloud 出品的新一代跨端框架,可以说是目前跨端数最多的框架之一了,目前支持发布到:App(Android/iOS).H5.小程序(微信小程序/支付宝小程序/百度小程序/ ...

  4. openstack 平台P2V迁移

    目录 [Openstack]P2V迁移 一.前言 二.前提准备 三.操作步骤 1.安装迁移中转机 2.配置中转机 3.创建存储池(可选) 4.制作virt-p2v的 U盘引导启动工具 5.操作物理机, ...

  5. shiro系列三、ssm框架整合shiro实现权限控制

    shiro权限框架是一个非常优秀的框架,前面的几篇文章对shiro进行了非常详细的介绍和原理分析,那么接下来让我们开始在web项目中使用它(javase也能用shiro): 一.数据库表结构设计 二. ...

  6. 05_ Flume多级Agent之间串联案例

    多级agent之间串联: 从tail命令获取数据发送到avro端口,另一个节点可配置一个avro源来获取数据,发送外部存储 启动两个Agent节点: 使用scp命令拷贝flume安装包到另一台虚拟机; ...

  7. tnsnames.ora配置细节注意

    WXPT = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.250)(PORT = 1521) ...

  8. Python&Selenium 数据驱动【unittest+ddt+mysql】

    一.摘要 本博文将介绍Python和Selenium做自动化测试的时候,基于unittest框架,借助ddt模块使用mysql数据库为数据源作为测试输入 二.SQL脚本 # encoding crea ...

  9. python : import详解。

    用户输入input() input()函数: 用于从标准输入读取数值. >>> message = input('tell me :') tell me :hahah >> ...

  10. [USACO19JAN]Redistricting——单调队列优化DP

    原题链接 首先有一个\(O(nk)\)的很显然的\(dp\),把荷斯坦牛看成\(1\),把更赛牛看成\(-1\),这样就可以很方便地通过前缀和来判断某一段中谁有优势了 考虑怎么优化,观察转移: \[f ...