看B站up主freexyn的freexyn編程實例視頻教程系列36Matlab GUI的學習筆記
任務要求設計一個圖像處理菜單,實現圖像的打開導入、灰度處理、存儲等功能
修改過文件名,所以運行的時候會有一點點報錯,但是不影響運行
-
打開工具欄下邊的菜單編輯器,新建5個菜單
-
修改菜單文本,新建菜單項,確定
-
使用坐標區設計頁面,保存為menu.fig
-
運行,可以看到菜單的設計
-
編輯”文件-打開“的回調函數:點擊菜單編輯器,點擊文件-打開,標記改為”open“,點擊”查看“,定位到回調函數

function open_Callback(hObject, eventdata, handles)% hObject handle to open (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)[file_name,path]=uigetfile('*.jpg');axes(handles.axes1);%設置第一個坐標區為當前坐標區imshow(fullfile(path,file_name));set(handles.axes1,'userdata',fullfile(path,file_name));
-
編輯”圖像處理-轉成灰度圖“的回調函數:點擊菜單編輯器,點擊圖像處理-轉成灰度圖,標記改為”gray“,點擊”查看“,定位到回調函數
function gray_Callback(hObject, eventdata, handles) path=get(handles.axes1,'userdata'); data=imread(path); data2=rgb2gray(data); axes(handles.axes2); imshow(data2); set(handles.axes2,'userdata',data2);
-
編輯”文件-導出“的回調函數:點擊菜單編輯器,點擊文件-導出,標記改為”export“,點擊”查看“,定位到回調函數
function export_Callback(hObject, eventdata, handles) data2=get(handles.axes2,'userdata'); file_name=imputfile; imwrite(data2,file_name); helpdlg('保存完成');
-
添加上下文菜單:實現第一個快捷菜單在右鍵點擊左邊坐標區時會跳出打開功能,第二個快捷菜單在右鍵點擊右邊坐標區時會跳出轉成灰度圖功能
-
添加兩個上下文菜單
-
快捷打開的回調函數與正式流程的函數一樣,直接復制粘貼
function open_fast_Callback(hObject, eventdata, handles) [file_name,path]=uigetfile('*.jpg'); axes(handles.axes1);%設置第一個坐標區為當前坐標區 imshow(fullfile(path,file_name)); set(handles.axes1,'userdata',fullfile(path,file_name));
-
快捷打轉成灰度圖的回調函數與正式流程的函數一樣,直接復制粘貼
function gray_fast_Callback(hObject, eventdata, handles) path=get(handles.axes1,'userdata'); data=imread(path); data2=rgb2gray(data); axes(handles.axes2); imshow(data2); set(handles.axes2,'userdata',data2);
-
把快捷菜單與它的屬性連接起來:雙擊左邊坐標區,屬性UIContexMenu為c1。右邊坐標區同理(但我設置的時候沒找到UIContexMenu)
-