我們要進行的程序是彩色圖像處理試驗示例,用這個程序來練習我們的gui前台設計。
程序功能介紹:具有彩色圖像處理及保存和音樂播放功能效果如下圖
在MATLAB的命令窗口中輸入guide命令,打開guidequick start窗口,選擇create new gui 點ok 生成新的fig文件如下圖:
右點窗口 ,打開屬性設置修改figur窗口名字,點name項就可以改 我們改為xiaobotest.fig,而后我們在窗口中拖進來,和幾個按紐用於交互程序的事件觸發,做成前台如下圖
前台部分 接下來我們還要進行窗口菜單的制作,點tools選擇menu editor
接上面的操作出現一個窗口 點new menu ,選中這個項 接着再點new menu就可以為它加目錄項了 ,選中untiled1 可以看到它的屬性 可以修改了label 是用於顯示文字說明用的 tag相當於句柄一樣用於操作的 下面我們改打開表項的 tag 值為open 如下圖
經過上面的幾步操作 就完成菜單制作,功能上就具有 打開文件 保存 音樂播放 停止等如下圖
下面進行各各菜單項的事件操作,點view(查看)就可以打開callback函數
function openfile_Callback(hObject, eventdata, handles)這個就是打開操作對應的函數 我們加入如下代碼
后的各各操作如同上面一樣 加入一下代碼 分別為保存rgb操作圖片和hsi操作圖片
function savergb_Callback(hObject, eventdata, handles)
function savehsi_Callback(hObject, eventdata, handles)
對於按紐操作,例如 rgb直方圖操作 我們把放到rgb直方圖上點右鍵如下圖代碼如下
function pushbuttonrgb_Callback(hObject, eventdata, handles)
技術細節說明:
其中實現菜單可選不可選用的是
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');
這樣就可以實現菜單的冗余操作了
全部操作后的效果如下圖:
特別說明:在菜單選項中加入音樂播放功能
打開制作好的音樂功能菜單的並修改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);
運行的界面如下圖:可以選擇停止播放,或者在音樂放完后可以再點播放接着聽音樂,放松工作時間啊
菜單項目的功能有打開,和保存兩個打開是打開圖片,保存是保存你處理的各種圖像,沒有打開圖像前保存菜單是不可選的,這四種處理沒有相應的處理時也是不可選的如下圖
點RGB直方圖均衡button可以看到顯示到了相應位置上,此時保存菜單里的保存RGB直方圖均衡圖像可以選擇
程序完整的運行效果如下圖,保存hsi直方圖到桌面操作
到此,整個matlab gui 界面設計就完成了,本人記錄的筆記僅供參考,有什么錯誤之處,還望指出。

![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249Njc3YzFkOGQyZmY1ZTBmZWVlMTg4OTAxNmM2MTM0ZTUvNjYwOWM5M2Q3MGNmM2JjNzA4NWVkZjc4ZDMwMGJhYTFjYzExMmFjMy5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249NTQ0OWUxZjgxMjM4NTM0MzhjY2Y4NzIxYTMxMmIwMWYvODQzNWU1ZGRlNzExOTBlZjE3YTU4MDRiY2MxYjlkMTZmY2ZhNjBjMy5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249NzU1OTA4MDA0NDIzMDlmN2U3NmZhZDEyNDIwZjBjMzkvMTEzODUzNDNmYmYyYjIxMWE5MDA5OGRhYzg4MDY1MzgwY2Q3OGU3My5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249MzNiM2UwMzFkMzQzYWQ0YmE2MmU0NmMwYjIwMzVhODkvOGFkNGIzMWM4NzAxYTE4YjZkNTYwZmRiOWMyZjA3MDgyOTM4ZmVlMS5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249ZDU0NjFlNzUyZDJlYjkzOGVjNmQ3YWYyZTU2Mzg1ZmUvZDA1OGNjYmY2YzgxODAwYTk4Nzk5NDlhYjMzNTMzZmE4MzhiNDc4MS5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249MWIxMWFlMzBhNmMyN2QxZWE1MjYzYmM0MmJkNGFkYWYvZjYzNmFmYzM3OTMxMGE1NTdjMzdjMjYwYjU0NTQzYTk4MjI2MTAxNi5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249MmRhZDhjYmFhYWQzZmQxZjM2MDlhMjNhMDA0ZjI1Y2UvNTBkYTgxY2IzOWRiYjZmZGZkNDBmYWIyMGIyNGFiMTg5NzJiMzcwZS5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249MTg2M2ZkOWI4NTk0YTRjMjBhMjNlNzJiM2VmNTFiYWMvNzlmMGY3MzZhZmMzNzkzMWM0YmU5YWJkZTljNGI3NDU0MmE5MTE0Yi5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249NDI1NzBiOWJiYTBlN2JlYzIzZGEwM2UxMWYyZmI5ZmEvOTM1OGQxMDliM2RlOWM4MmFhMGVlNjFiNmU4MTgwMGExOWQ4NDMzZS5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249ZGQyYzMxNzFhZjZlZGRjNDI2ZTdiNGZiMDlkYWI2YTIvZWFjNGI3NDU0M2E5ODIyNjFjMjQzNGIzODg4MmI5MDE0YjkwZWJiOS5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249YWIyN2IzODY3MDBlMGNmM2EwZjc0ZWZiM2E0N2YyM2QvOTIxM2IwN2VjYTgwNjUzODM3YTJiYTg3OTVkZGExNDRhYzM0ODJkZC5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249MmRhMWU1YmY5ZjE2ZmRmYWQ4NmNjNmVlODQ4ZThjZWEvNDAzNDk3MGEzMDRlMjUxZjFmODRmYTZjYTU4NmM5MTc3ZjNlNTMzNi5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249M2I1MjIxZTJmMDFmYmUwOTFjNWVjMzE0NWI2MTBjMzAvOTAyMzk3ZGRhMTQ0YWQzNDE5MWI5OTEzZDJhMjBjZjQzMGFkODVmOS5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249NGI0MmRiYTc5MzhmYTBlYzdmYzc2NDBkMTY5NjU5NGEvMzU5YjAzM2I1YmI1YzllYTNjNWMxYTc3ZDczOWI2MDAzYmYzYjNmMi5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249ZjA0MWFhYmMzNDdhZGFiNDNkZDAxYjQzYmJkNWIzNmIvNThlZTNkNmQ1NWZiYjJmYjRiNGU0MTg2NGQ0YTIwYTQ0NjIzZGMzOC5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249ZGUyNWZjMDYwZWY0MzFhZGJjZDI0MzM5N2IzN2FjMGYvMmNmNWUwZmU5OTI1YmMzMTMwZjIxODBjNWNkZjhkYjFjYTEzNzBmMi5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249MjA2YmZkNmNhNTg2YzkxNzA4MDM1MjM5ZjkzYzcwYzYvOTYyYmQ0MDczNWZhZTZjZGNlMjhiMmY1MGRiMzBmMjQ0M2E3MGY4MS5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249NGFjYmY4YTMzN2ZhZTZjZDBjYjRhYjYxM2ZiMjBmOWUvMzgxMmIzMWJiMDUxZjgxOTViZjgxYWRlZDhiNDRhZWQyZjczZTc0MS5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249MDRlZjY5NzlhMzQ0YWQzNDJlYmY4Nzg3ZTBhMzBjMDgvYjU4ZjhjNTQ5NGVlZjAxZmFmZTVkMzUxZTJmZTk5MjViZDMxN2RiNS5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249MWNkYTU1N2RmMGQzNTcyYzY2ZTI5Y2RjYmExMjYzNTIvMWI0YzUxMGZkOWY5ZDcyYTc2NTIxMjg5ZDYyYTI4MzQzNDliYmI2Yi5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249OTQ5OWI1MzRmNDAzNzM4ZGRlNGEwYzIyODMxYWIwNzMvNjIyNzYyZDBmNzAzOTE4ZjhkNzRmNzVlNTMzZDI2OTc1OGVlYzRmOS5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249YmMxNGMxYTc3MThkYTk3NzRlMmY4NjJiODA1MGY4NzIvNjNkMGY3MDM5MThmYTBlY2ZlN2U2Njk5MjQ5NzU5ZWUzYzZkZGJlZC5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249NDRkNTUwZjVmMWRlYjQ4ZmZiNjlhMWRlYzAxZTNhZWYvMjQxZjk1Y2FkMWM4YTc4NjcwMzg4MDlhNjUwOWM5M2Q3MGNmNTAxMC5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249MmM5ZGNmNzhkMzAwYmFhMWJhMmM0N2JiNzcxMWI5YjEvZDgzM2M4OTVkMTQzYWQ0YjYyYjM0NDU0ODAwMjVhYWZhNTBmMDY4MC5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249N2M2MzBhYzk1N2ZiYjJmYjM0MmI1ODEyN2Y0YjIwNDMvYjcwMDNhZjMzYTg3ZTk1MDEwYTdmMWY4MTIzODUzNDNmYWYyYjRmNS5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249ZDg1MTM3ODA0MGE3ZDkzM2JmYThlNDczOWQ0YWQxOTQvZGJiNDRhZWQyZTczOGJkNDY0ZmViZmE1YTM4Yjg3ZDYyNjdmZjk0My5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249YjhiZDY3N2I4ZmIxY2IxMzNlNjkzYzEzZWQ1NTU2ZGEvYmJhMWNkMTE3MjhiNDcxMDM1MDdmMTU4YzFjZWMzZmRmYzAzMjM3ZC5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249NDhiNDM3MTcwZDI0NDJhN2FlMGVmZGE1ZTE0MmFkOTUvMzc3YWRhYjQ0YWVkMmU3MzVkMzE4YmI4ODUwMWExOGI4NmQ2ZmE0ZS5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249Mzk0MGNiYmJiYzA5NmI2MzgxMTk1ZTUwM2MzMjg3MzMvOTZkZGExNDRhZDM0NTk4MjgxYjFlOTA2MGVmNDMxYWRjYmVmODQ2ZS5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249NDZjZWVjYTMzN2ZhZTZjZDBjYjRhYjYxM2ZiMjBmOWUvMzgxMmIzMWJiMDUxZjgxOTU3ZmQwZWRlZDhiNDRhZWQyZjczZTc0ZS5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249ODU4ZTg1OWFiMzM1MzNmYWY1YjY5MzJlOThkMmZkY2EvMGZmNDFiZDVhZDZlZGRjNGNkOGNiODZmM2JkYmI2ZmQ1MjY2MzMzZS5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249MGExNTk0ZWZkMzEzNzNmMGY1M2Y2ZjlmOTQwZTRiOGIvODYwMWExOGI4N2Q2Mjc3ZjQ1NzkzZWFjMmEzODFmMzBlOTI0ZmMzZi5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249YmMxZjE0NTFlMmZlOTkyNWNiMGM2OTUwMDRhOTVlZTQvYzgzZDcwY2YzYmM3OWYzZDdlZWFlOGE0YjhhMWNkMTE3MjhiMjkxZS5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249ZDc1NjBkMGM1Y2RmOGRiMWJjMmU3YzY0MzkyMmRkZGIvZDAwMGJhYTFjZDExNzI4YmNjMjY4MGI2Y2FmY2MzY2VjM2ZkMmMxZS5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249YjBiODM1NTAzM2FkY2JlZjAxMzQ3ZTA2OWNhZTJlMGUvZTFmZTk5MjViYzMxNWM2MDU0YjI2NzdiOGZiMWNiMTM0OTU0Nzc3YS5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249MWRhZmYwNGUxN2NlMzZkM2EyMDQ4MzMwMGFmMjNhMjQvYjkwZTdiZWM1NGU3MzZkMTY5MzQ4MDljOTk1MDRmYzJkNTYyNjk3YS5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249OGIzZjUyYzdmNDI0NmI2MDdiMGViMjc0ZGJmOTFhMzUvYWMzNDU5ODJiMmI3ZDBhMjM5YzIwODA5YzllZjc2MDk0YjM2OWExZS5qcGc=.png)
![matlab交互式程序設計示例:[6]GUI界面編程1](/image/aHR0cHM6Ly9pbWdzYS5iYWlkdS5jb20vZXhwL3c9NTAwL3NpZ249NjhiZWVkOWI4NTk0YTRjMjBhMjNlNzJiM2VmNTFiYWMvNzlmMGY3MzZhZmMzNzkzMWI0NjM4YWJkZTljNGI3NDU0M2E5MTExZS5qcGc=.png)