【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)
    
     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“,点击”查看“,定位到回调函数

    在这里插入图片描述

    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“,点击”查看“,定位到回调函数

    function export_Callback(hObject, eventdata, handles)
    data2=get(handles.axes2,'userdata');
    file_name=imputfile;
    imwrite(data2,file_name);
    helpdlg('保存完成');
    

    在这里插入图片描述

  8. 添加上下文菜单:实现第一个快捷菜单在右键点击左边坐标区时会跳出打开功能,第二个快捷菜单在右键点击右边坐标区时会跳出转成灰度图功能

    1. 添加两个上下文菜单

      在这里插入图片描述

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

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

      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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/485295.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】链式队列

链式队列实现&#xff1a; 1.创建一个空队列 2.尾插法入队 3.头删法出队 4.遍历队列 一、main函数 #include <stdio.h> #include "./3.linkqueue.h" int main(int…

【智慧零售】门店管理设备解决方案,为企业数字化运营升级赋能

2023年我国零售总额超47万亿元&#xff0c;广阔的市场提供了更多机遇&#xff0c;同时随着日趋激烈的竞争&#xff0c;企业也正面临着一些挑战&#xff1a;如何才能有效提升门店生产效率&#xff1f;降低门店运营成本&#xff1f;提高市场竞争力&#xff1f; 零售企业认识到通…

算法——模拟

1. 什么是模拟算法&#xff1f; 官方一点来说 模拟算法&#xff08;Simulation Algorithm&#xff09;是一种通过模拟现实或抽象系统的运行过程来研究、分析或解决问题的方法。它通常涉及创建一个模型&#xff0c;模拟系统中的各种事件和过程&#xff0c;以便观察系统的行为&a…

《VitePress 简易速速上手小册》第8章 安全性与部署(2024 最新版)

文章目录 8.1 安全最佳实践8.1.1 基础知识点解析8.1.2 重点案例&#xff1a;个人博客8.1.3 拓展案例 1&#xff1a;在线商店8.1.4 拓展案例 2&#xff1a;企业网站 8.2 部署到 GitHub Pages 和其他平台8.2.1 基础知识点解析8.2.2 重点案例&#xff1a;个人博客部署到 GitHub Pa…

【高德地图】Android高德地图控件交互详细介绍

&#x1f4d6;第5章 与地图控件交互 ✅控件交互&#x1f9ca;缩放按钮&#x1f9ca;指南针&#x1f9ca;定位按钮&#x1f9ca;地图Logo ✅手势交互&#x1f9ca;缩放手势&#x1f9ca;滑动手势&#x1f9ca;旋转手势&#x1f9ca;倾斜手势&#x1f9ca;指定屏幕中心点的手势操…

【机器学习的主要任务和应用领域】

曾梦想执剑走天涯&#xff0c;我是程序猿【AK】 目录 简述概要知识图谱 简述概要 了解机器学习的主要任务和应用领域 知识图谱 机器学习的主要任务可以分为监督学习、无监督学习和半监督学习。 监督学习&#xff1a;这是机器学习中最为常见的一类任务&#xff0c;基于已知类…

选择 Python IDE(VSCode、Spyder、Visual Studio 2022和 PyCharm)

前言 当选择 Python 开发工具时&#xff0c;你需要考虑自己的需求、偏好和项目类型。下面是对VSCode、Spyder、Visual Studio 2022和 PyCharm的对比推荐总结&#xff1a; 结论 1、如果你专注于“数据科学”&#xff0c;选择SpyDer没错。 内容 Visual Studio Code (VS Code)…

vue-router 三级路由,路由跳转页面异常白屏或404,或刷新三级路由页面后一级和二级路由菜单丢失

问题描述 情况1. vue-router 定义三级路由&#xff0c;路由跳转了&#xff0c;页面404或者白屏情况2. 点击菜单三级路由后&#xff0c;刷新页面后一级和二级路由菜单丢失 解决方案&#xff1a; 某些时候是因为二级和三级的路由共用router-view&#xff0c;可以使用router-vi…

Springboot集成Druid实现监控功能

Druid是阿里巴巴开发的号称为监控而生的数据库连接池&#xff0c;在功能、性能、扩展性方面&#xff0c;都超过其他数据库连接池&#xff0c;包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource等等等&#xff0c;秒杀一切。Druid可以很好的监控DB池连接和SQL的执行情况&#…

<网络安全>《47 网络攻防专业课<第十二课 - TCPIP网络协议攻击与防范之攻击手段>》

1 建立TCP连接 三次握手 2 SYN Flood泛洪攻击 服务拒绝&#xff08;DOS&#xff0c;Denial of Service&#xff09;攻击时&#xff0c;攻击者想法占用被攻击者的资源&#xff0c;例如&#xff1a;带宽、CPU、内存等&#xff0c;使得被攻击者无法响应正常用户的请求。 SYN泛洪…

mysql 自定义函数create function

方便后续查询&#xff0c;做以下记录&#xff1b; 自定义函数是一种与存储过程十分相似的过程式数据库对象&#xff0c; 它与存储过程一样&#xff0c;都是由 SQL 语句和过程式语句组成的代码片段&#xff0c;并且可以被应用程序和其他 SQL 语句调用。 自定义函数与存储过程之间…

【机器学习的基本术语和概念】

曾梦想执剑走天涯&#xff0c;我是程序猿【AK】 目录 简述概要知识图谱 简述概要 提示&#xff1a;简要描述文章内容&#xff0c;适合哪些人观看 知识图谱 样本&#xff08;Sample&#xff09;/实例&#xff08;Instance&#xff09;&#xff1a;在机器学习中&#xff0c;我…