【MATLAB GUI】 5. 图像处理菜单(菜单编辑器)

看B站up主freexyn的freexyn编程实例视频教程系列36Matlab GUI的学习笔记

任务要求设计一个图像处理菜单,实现图像的打开导入、灰度处理、存储等功能

修改过文件名,所以运行的时候会有一点点报错,但是不影响运行

  1. 打开工具栏下边的菜单编辑器,新建5个菜单

  2. 修改菜单文本,新建菜单项,确定


  3. 使用坐标区设计页面,保存为menu.fig

  4. 运行,可以看到菜单的设计

  5. 编辑"文件-打开"的回调函数:点击菜单编辑器,点击文件-打开,标记改为"open",点击"查看",定位到回调函数

    复制代码
     ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/909c41e668724740bb9a619bb9d661a5.png#pic_center)
    matlab 复制代码
     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));
  6. 编辑"图像处理-转成灰度图"的回调函数:点击菜单编辑器,点击图像处理-转成灰度图,标记改为"gray",点击"查看",定位到回调函数

    matlab 复制代码
    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);
  7. 编辑"文件-导出"的回调函数:点击菜单编辑器,点击文件-导出,标记改为"export",点击"查看",定位到回调函数

    matlab 复制代码
    function export_Callback(hObject, eventdata, handles)
    data2=get(handles.axes2,'userdata');
    file_name=imputfile;
    imwrite(data2,file_name);
    helpdlg('保存完成');
  8. 添加上下文菜单:实现第一个快捷菜单在右键点击左边坐标区时会跳出打开功能,第二个快捷菜单在右键点击右边坐标区时会跳出转成灰度图功能

    1. 添加两个上下文菜单

    2. 快捷打开的回调函数与正式流程的函数一样,直接复制粘贴

      matlab 复制代码
      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));
    3. 快捷打转成灰度图的回调函数与正式流程的函数一样,直接复制粘贴

      matlab 复制代码
      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);
    4. 把快捷菜单与它的属性连接起来:双击左边坐标区,属性UIContexMenu为c1。右边坐标区同理(但我设置的时候没找到UIContexMenu)

相关推荐
Ai173163915798 小时前
2025.11.28国产AI计算卡参数信息汇总
服务器·图像处理·人工智能·神经网络·机器学习·视觉检测·transformer
艾莉丝努力练剑10 小时前
【Python基础:语法第一课】Python 基础语法详解:变量、类型、动态特性与运算符实战,构建完整的编程基础认知体系
大数据·人工智能·爬虫·python·pycharm·编辑器
skywalk816311 小时前
FreeBSD系统安装VSCode Server(未成功,后来是在FreeBSD系统里的Linux虚拟子系统里安装启动了Code Server)
ide·vscode·编辑器·freebsd
AndrewHZ1 天前
【图像处理基石】如何在图像中提取出基本形状,比如圆形,椭圆,方形等等?
图像处理·python·算法·计算机视觉·cv·形状提取
东荷新绿1 天前
MATLAB 2018a 安装教程:30分钟搞定安装
开发语言·matlab·matlab2018a
你还满意吗1 天前
开发工具推荐
编辑器
亮子AI1 天前
如何做一个类似Word的编辑器?要有修改标记功能
编辑器·word
Coding茶水间1 天前
基于深度学习的路面坑洞检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
图像处理·人工智能·深度学习·yolo·目标检测·计算机视觉
jllllyuz2 天前
Matlab实现基于Matrix Pencil算法实现声源信号角度和时间估计
开发语言·算法·matlab
Dev7z2 天前
基于Matlab传统图像处理的风景图像多风格转换与优化
图像处理·matlab·风景