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

news/发布时间2024/9/20 6:04:51

看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.bcls.cn/tpYc/9467.shtml

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

相关文章

Python的报错类型

在编写python代码时,当不当使用时,python会给出错误提示,常见的错误类型有如下几种: 1.TpyeError类型错误 ① 传入的参数数量不对:如调abs()有且仅有1个参数,但给出了两个时,python会给出提示…

pwa应用打开自动跳转到某个网页网址,并且全屏不显示网址url,就像这个网页也具备了pwa功能

问题描述 如果是只要在同一个域名下配置了pwa功能,那么当从桌面上打开这个pwa软件时,就会像真正的app运行一样,全屏显示,并且不显示网址的,但是如果要动态配置打开pwa时动态加载不同的网址,使用 window.lo…

Stable Diffusion 绘画入门教程(webui)-ControlNet(Recolor)

Recolor,顾名思义就是重上色的意思,很明显能想到的用法就是老照片上色,也就是老照片修复,看下效果吧(左边为老旧照片,右边为重上色效果): 当然除了这种玩法,也可以局部修…

Vue3列表触底请求(上手体验hooks新特性)

今天我们来聊一聊业务开发中的触底请求,其实就是分页的一种,只不过传统的分页感觉很丑而已,正好我的小博客最近在做触底分页,借此机会来说一说具体怎么实现的,以及来带领大家使用一下Vue3中的新特性hooks函数。 案例和…

unity Android包安装运行后提示:此要用与最新版Android不兼容。

问题 unity 打包apk,安装运行后提示**“此要用与最新版Android不兼容。…” 解决办法 参考文献 https://blog.csdn.net/liweidecsdn/article/details/135997780

如何将实景三维倾斜模型叠加到三维地球上?

​ 通过以下方法可以将实景三维倾斜模型叠加到三维地球上。 方法/步骤 下载三维地图浏览器 http://www.geosaas.com/download/map3dbrowser.exe,安装完成后桌面上出现”三维地图浏览器“图标。 2、双击桌面图标打开”三维地图浏览器“ 3、点击“倾斜模型”…

JS api基础初学

轮播图随机版 需求:当我们刷新页面,页面中的轮播图会显示不同图片以及样式 分析:①:准备一个数组对象,里面包含详细信息(素材包含) ②:随机选择一个数字,选出数组对应…

Java项目:30 基于SpringBoot自习室座位预定系统

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 功能设计 管理员 1、用户管理 管理员可以新增、删除管理员 管理员可以删除学生 2、自习室管理 管理员可以新增自习室、设置自习室的座位数量、开…

lnmp安装

一、安装lnmp 第一步:将MySQL 、论坛的安装包拖进shell 环境准备 lnmp 需要 安装 nginx mysql php 软件 第二步:解压nginx,再安装依赖包(注意装在源配置文件下),关闭防火墙 systemctl disable --now fir…

map和set的简单介绍

由于博主的能力有限,所以为了方便大家对于map和set的学习,我放一个官方的map和set的链接供大家参考: https://cplusplus.com/ 在初阶阶段,我们已经接触过STL中的部分容器,比如:vector、list、deque&#x…

Redis 在 Linux 系统下安装部署的两种方式详细说明

小伙伴们好,欢迎关注,一起学习,无限进步 Redis安装和配置 1、首先在官网下载好redis-6.0.9.tar.gzhttp://redis.io/ 或者使用 wget 命令下载:wget http://download.redis.io/releases/redis-6.0.9.tar.gz 2、下载使用上传到阿里…

【小沐学QT】QT学习之信号槽使用

文章目录 1、简介2、代码实现2.1 界面菜单“转到槽”方法2.2 界面信号槽编辑器方法2.3 QT4.0的绑定方法2.4 QT5.0之后的绑定方法2.5 C11的方法2.6 lamda表达式方法2.7 QSignalMapper方法 结语 1、简介 在GUI编程中,当我们更改一个小部件时,我们通常希望…

[SpringDataMongodb开发游戏服务器实战]

背景: xdb其实足够完美了,现在回想一下,觉得有点复杂,我们不应该绑定语言,最好有自己的架构思路。 七号堡垒作为成功的商业项目,告诉我:其实数据是多读少写的,有修改的时候直接改库也…

4核8g服务器能支持多少人访问?

腾讯云4核8G服务器支持多少人在线访问?支持25人同时访问。实际上程序效率不同支持人数在线人数不同,公网带宽也是影响4核8G服务器并发数的一大因素,假设公网带宽太小,流量直接卡在入口,4核8G配置的CPU内存也会造成计算…

前端 基础标签

!回车在vscode中可以生成简单的代码模板 注释 ctrl/ <h1></h1> 类似的数字越大字体越小 <p></p>表示一个段落 注:这里的回车会被解析成空格 <br> 单标签 表示换行 格式化标签 加粗标签 <strong></strong> <b></b> …

常用对象的遍历方法

var obj [{name: 1111,account: {01: { name: 1.1 },02: { name: 1.2 },03: { name: 1.3 },04: { name: 1.4 },05: { name: 1.5 },}} ]var nowObj obj[0].account;1、for…in 任意顺序遍历对象所有的可枚举属性&#xff08;包括对象自身的和继承的可枚举属性&#xff0c;不含…

前端-Vue3递归组件自定义Tree

需求 PS&#xff1a;写在前面&#xff0c;需求想要一个Tree 形结构展示当前的组织机构&#xff0c;最末层节点可以选择&#xff0c;层级明确。第一选择网上npm官网或者github 找找成型的东西 element-ui Tree 没有组织结构线js-tree 好看&#xff0c;但是适配Vue3 有点费劲&a…

Appium手机Android自动化

目录 介绍 什么是APPium&#xff1f; APPium的特点 环境准备 adb(android调试桥)常用命令 appium图形化简单使用 连接手机模拟器 使用appium桌面端应用程序 ​编辑 整合java代码测试 环境准备 引入所需依赖 书写代码简单启动 ​编辑 Appium元素定位 id定位 介…

【postgresql】数据表id自增与python sqlachemy结合实例

需求&#xff1a; postgresql实现一个建表语句&#xff0c;表名&#xff1a;student,字段id,name,age&#xff0c; 要求&#xff1a;每次添加一个数据id会自动增加1 在PostgreSQL中&#xff0c;您可以使用SERIAL或BIGSERIAL数据类型来自动生成主键ID。以下是一个创建名为stude…

Ubuntu系统下DPDK环境搭建

目录 一.虚拟机配置1.添加一个网卡(桥接模式)2.修改网卡类型3.修改网卡名称4.重启虚拟机5.查看网卡信息6.dpdk配置内存巨型页 三 DPDK源代码下载和编译1.下载源代码2.解压源代码3.安装编译环境4.编译5.设置dpdk的环境变量6.禁止多队列网卡7.加载igb_uio模块8.网卡绑定9.验证测试…
推荐文章