matlab gui界面设计记录

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

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

    matlab gui界面设计记录 matlab gui界面设计记录
  2. 2

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

    matlab gui界面设计记录 matlab gui界面设计记录 matlab gui界面设计记录
  3. 3

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

    matlab gui界面设计记录 matlab gui界面设计记录 matlab gui界面设计记录 matlab gui界面设计记录
  4. 4

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

    matlab gui界面设计记录 matlab gui界面设计记录
  5.  

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

    matlab gui界面设计记录 matlab gui界面设计记录 matlab gui界面设计记录 matlab gui界面设计记录 matlab gui界面设计记录
  6.  

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

    matlab gui界面设计记录
  7.  

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

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

    matlab gui界面设计记录 matlab gui界面设计记录
  8.  

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

    function savergb_Callback(hObject, eventdata, handles)

    function savehsi_Callback(hObject, eventdata, handles)

     

    matlab gui界面设计记录 matlab gui界面设计记录
  9.  

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

    function pushbuttonrgb_Callback(hObject, eventdata, handles)

     

     

     

    matlab gui界面设计记录 matlab gui界面设计记录 matlab gui界面设计记录
  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');

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

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

    matlab gui界面设计记录
  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.  

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

    matlab gui界面设计记录 matlab gui界面设计记录
  13.  

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

    matlab gui界面设计记录 matlab gui界面设计记录 matlab gui界面设计记录
  14.  

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

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

上一篇:0基础开发游戏的第三课-使用Playmaker制作坦克生命模块


下一篇:spreadjs~~一个Excel在线编辑的工具