咱們要進行的程序是彩色圖像處理試驗示例,用這個程序來練習咱們的gui前臺設計。html
程序功能介紹:具備彩色圖像處理及保存和音樂播放功能效果以下圖編程
在MATLAB的命令窗口中輸入guide命令,打開guidequick start窗口,選擇create new gui 點ok 生成新的fig文件以下圖:app
右點窗口 ,打開屬性設置修改figur窗口名字,點name項就能夠改 咱們改成xiaobotest.fig,然後咱們在窗口中拖進來,和幾個按紐用於交互程序的事件觸發,作成前臺以下圖ide
前臺部分 接下來咱們還要進行窗口菜單的製做,點tools選擇menu editor 函數
接上面的操做出現一個窗口 點new menu ,選中這個項 接着再點new menu就能夠爲它加目錄項了 ,選中untiled1 能夠看到它的屬性 能夠修改了label 是用於顯示文字說明用的 tag至關於句柄同樣用於操做的 下面咱們改打開表項的 tag 值爲open 以下圖 ui
通過上面的幾步操做 就完成菜單製做,功能上就具備 打開文件 保存 音樂播放 中止等以下圖設計
下面進行各各菜單項的事件操做,點view(查看)就能夠打開callback函數3d
function openfile_Callback(hObject, eventdata, handles)這個就是打開操做對應的函數 咱們加入以下代碼 htm
後的各各操做如同上面同樣 加入一下代碼 分別爲保存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 界面設計就完成了,本人記錄的筆記僅供參考,有什麼錯誤之處,還望指出。