行业知识
【MATLAB GUI】 5. 图像处理菜单(菜单编辑器)
2026-10-20 08:10:48
来源:互联网转载
���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)
-
上一篇:为什么有网络连接不上?