MATLAB GUI设计(基础)

一、目的和要求

1、熟悉和掌握MATLAB GUI的基本控件的使用及属性设置。

2、熟悉和掌握通过GUIDE创建MATLAB GUI的方法。

3、熟悉和掌握MATLAB GUI的菜单、对话框及文件管理框的设计。

4、熟悉和掌握MATLAB GUI的M文件编写。

5、了解通过程序创建MATLAB GUI的方法。

二、内容和步骤

MATLAB提供了可视化的图形界面开发环境,方便地实现用户界面的设计。

1、设计一个能够根据用户选择,显示正弦波、矩形波、锯齿波的GUI界面。

(1)设计界面。通过MATLAB菜单栏,依次选择Flie→New→GUI,打开GUIDE Quick Star界面,选择Blank GUI创建一个空白界面。

(2)设置控件属性,如下图所示。

控件名称

String属性

Tag属性

静态文本

显示函数

坐标轴

(默认)

(默认)

按钮

正弦函数、矩形函数、锯齿函数

fun1、fun2、fun3

 

(3)编写回调函数。选中“正弦函数”按钮,单击右键选择“查看回调”→Callback,进入M文件中回调函数的编辑,系统会自动生成一个空的fun1_Callback函数,该步骤表示当鼠标单击该按钮时,在坐标轴控件中会显示正弦函数,编写代码如下:

同理,对“矩形函数”按钮和“锯齿函数”按钮的Callback函数编写如下代码:

单击.fig文件工具栏中的运行按钮即可运行GUI界面,当单击要显示的函数按钮时,窗口中就会显示相应的函数,如下图所示。

2设计一个简单实用的图像处理程序。功能如下:

(1)图像的读取和保存。

(2)设计图形用户界面,让用户对图像进行色彩图像到灰度图像的转换,并显示原图和灰度图像。

(3)设计图形用户界面,让用户能够根据需要来检测边缘检测算子,即选择边缘检测的方法。

(4)设计图形用户界面,让用户能够自行设定检测的阈值和方向。

(5)显示边缘检测后的图像,并与原图和灰度图像进行对比。

(6)其他功能。

根据上述分析完成如下步骤,界面设计如下图所示。

(1)设计界面。

控件名称

控件数量

功能描述

静态文本

5

用于标注相应控件的提示

坐标轴

3

用于显示原始图像、灰度图像和边缘检测后的图像

按钮

1

用于将原始图像转换为灰度图像

文本编辑框

1

用于输入数据

列表框

1

用于选择检测的方向

(2)设置控件属性。为了编辑和维护的方便,为控件设置新的String和Tag属性,如下图所示。

控件名称

String属性

Tag属性

静态文本

原图、灰度图像、检测图像、设定阈值、检测方向

(默认)

坐标轴

(默认)

original_image、gray_image、test_image

按钮

灰度转换

rgbtogray

文本编辑框

(默认)

thresh_value

列表框

horizontal、vertical、both

direction

           

(3)创建菜单,设计效果如下图所示。

一级菜单名称

子菜单项名称

文件

打开、保存、退出

检测方法

Sobel、Prewitt、Roberts、Canny

帮助

(4)编写代码。打开M文件,在对应函数位置添加如下程序,其他代码不变。

该段程序是菜单栏中子菜单“打开”选项的代码,主要用于选择打开并显示该图像。

该段程序是菜单栏中子菜单“保存”选项的代码,主要用于保存处理后的图像。

执行程序后,单击菜单栏中的文件,打开图片xxx.jpg,在原图位置会显示彩色图像,单击“灰度转换”按钮,在灰度图像位置会显示转换后的弧度图像,在“设定阈值”框输入0.1,选择“检测方向”为both,再在“检测方向”菜单中选择Canny,即可在“检测图像”的位置显示边缘检测后的图像,最后在“文件”菜单中选择“保存”,即可保存最终分割后的边缘检测图,如下图所示。


3、通过程序创建GUI

除通过GUI向导创建GUI外,还可以通过程序创建GUI,Matlab提供了一些函数用于创建GUI,这些函数可以辅助用户创建GUI。

建立数制转换对话框。在左边输入一个十进制整数和2~16之间的数,单击“转换”按钮能在右边得到十进制数所对应的2~16进制字符串,单击“退出”按钮退出对话框。

程序如下:

程序调用了trdec.m函数文件,该函数的作用是将任意十进制整数转换为2~16进制字符串。trdec.m函数文件如下:

建立“图形演示系统”菜单。菜单条中含有3个菜单项:Plot、Option和Quit。Plot中有Sine Wave和Cosine Wave两个子菜单项,分别控制在本图形窗口画出正弦和余弦曲线。Option菜单项的内容为:Grid on和Grid off控制给坐标轴加网格线,Box on和Box off控制给坐标轴加边框,而且这4项只有在画有曲线时才是可选的。Figure Color控制图形窗口背景颜色。Quit控制是否退出系统。

程序如下:

所建立的图形演示对话框如右图所示:

4、自我练习

设计一个简易计算器。

  • 设计页面

  • 设置控件属性

  • 编写代码

“0~9”和“+、-、*、/、及小数点”的代码都是一样的,只需要将textString中的符号进行相应改变就行。

“=”

“Back”及删除一位数字。

“C”即归零

  • 执行程序

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

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

相关文章

【工具变量】中国省级及地级市保障性住房数据集(2010-2023年)

一、测算方式:参考顶刊《世界经济》蔡庆丰(2024)老师的研究,具体而言,本文将土地用途为经济适用住房用地、廉租住房用地、公共租赁住房用地、共有产权住房用 地等类型的土地定义为具有保障性住房用途的土地。根据具有保…

第T8周:Tensorflow实现猫狗识别(1)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 具体实现 (一)环境 语言环境:Python 3.10 编 译 器: PyCharm 框 架: (二)具体步骤 from absl.l…

Day 18

修建二叉搜索树 link:669. 修剪二叉搜索树 - 力扣(LeetCode) 思路分析 注意修剪的时候要考虑到全部的节点,即搜到到限定区间小于左值或者大于右值时还需要检查当前不符合区间大小节点的右子树/左子树,不能直接返回n…

核间通信-Linux下RPMsg使用与源码框架分析

目录 1 文档目的 2 相关概念 2.1 术语 2.2 RPMsg相关概念 3 RPMsg核间通信软硬件模块框架 3.1 硬件原理 3.2 软件框架 4 使用RPMsg进行核间通信 4.1 RPMsg通信建立 4.1.1 使用名称服务建立通信 4.1.2 不用名称服务 4.2 RPMsg应用过程 4.3 应用层示例 5 RPMsg内核…

常用Adb 命令

# 连接设备 adb connect 192.168.10.125# 断开连接 adb disconnect 192.168.10.125# 查看已连接的设备 adb devices# 安装webview adb install -r "D:\webview\com.google.android.webview_103.0.5060.129-506012903_minAPI23(arm64-v8a,armeabi-v7a)(nodpi)_apkmirror.co…

高质量代理池go_Proxy_Pool

高质量代理池go_Proxy_Pool 声明! 学习视频来自B站up主 ​泷羽sec​​ 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章 笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以…

有关博客博客系统的测试报告 --- 初次进行项目测试篇

文章目录 前言一、博客系统的项目背景二、博客系统的项目简介1.后端功能1.1 用户管理1.2 博客管理1.3 权限管理 2.前端功能2.1 用户界面 测试计划测试工具、环境设计的测试动作功能测试访问博客登录页面博客首页测试博客详情页博客编辑页 自动化测试自动化测试用例自动化测试脚…

物业管理系统的设计和实现

一、项目背景 物业管理系统在现代城市化进程中起着至关重要的作用。 随着居民生活水平的提高和信息技术的迅猛发展,传统的物业管理模式已不能满足业主和管理者的需求。 为了提高管理效率、降低运营成本、提升服务质量,设计并实现一个集成化、智能化的物业…

JDBC编程---Java

目录 一、数据库编程的前置 二、Java的数据库编程----JDBC 1.概念 2.JDBC编程的优点 三.导入MySQL驱动包 四、JDBC编程的实战 1.创造数据源,并设置数据库所在的位置,三条固定写法 2.建立和数据库服务器之间的连接,连接好了后&#xff…

快速图像识别:落叶植物叶片分类

1.背景意义 研究背景与意义 随着全球生态环境的变化,植物的多样性及其在生态系统中的重要性日益受到关注。植物叶片的分类不仅是植物学研究的基础,也是生态监测、农业管理和生物多样性保护的重要环节。传统的植物分类方法依赖于人工观察和专家知识&…

数字化那点事:一文读懂物联网

一、物联网是什么? 物联网(Internet of Things,简称IoT)是指通过网络将各种物理设备连接起来,使它们可以互相通信并进行数据交换的技术系统。通过在物理对象中嵌入传感器、处理器、通信模块等硬件,IoT将“…

IntelliJ+SpringBoot项目实战(十)--常量类、自定义错误页、全局异常处理

一、常量类 在项目开发中,经常需要约定一些常量,比如接口返回响应请求指定状态码、异常类型、默认页数等,为了增加代码的可阅读性以及开发团队中规范一些常量的使用,可开发一些常量类。下面有3个常量类示例,代码位于op…

ubuntu20.04的arduino+MU编辑器安装教程

arduino 按照这个博客,是2.3版本的: Ubuntu20.04/22.04 安装 Arduino IDE 2.x_ubuntu ide-CSDN博客https://blog.csdn.net/michaelchain/article/details/128744935以下这个博客是1.8版本的 在ubuntu系统安装Arduino IDE的方法_ubuntu arduino ide-CS…

Docker核心概念总结

本文只是对 Docker 的概念做了较为详细的介绍,并不涉及一些像 Docker 环境的安装以及 Docker 的一些常见操作和命令。 容器介绍 Docker 是世界领先的软件容器平台,所以想要搞懂 Docker 的概念我们必须先从容器开始说起。 什么是容器? 先来看看容器较为…

Redis ⽀持哪⼏种数据类型?适⽤场景,底层结构

目录 Redis 数据类型 一、String(字符串) 二、Hash(哈希) 三、List(列表) 四、Set(集合) 五、ZSet(sorted set:有序集合) 六、BitMap 七、HyperLogLog 八、GEO …

uniapp接入BMapGL百度地图

下面代码兼容安卓APP和H5 百度地图官网:控制台 | 百度地图开放平台 应用类别选择《浏览器端》 /utils/map.js 需要设置你自己的key export function myBMapGL1() {return new Promise(function(resolve, reject) {if (typeof window.initMyBMapGL1 function) {r…

Docker+Nginx | Docker(Nginx) + Docker(fastapi)反向代理

在DockerHub搜 nginx,第一个就是官方镜像库,这里使用1.27.2版本演示 1.下载镜像 docker pull nginx:1.27.2 2.测试运行 docker run --name nginx -p 9090:80 -d nginx:1.27.2 这里绑定了宿主机的9090端口,只要访问宿主机的9090端口&#…

AmazonS3集成minio实现https访问

最近系统全面升级到https,之前AmazonS3大文件分片上传直接使用http://ip:9000访问minio的方式已然行不通,https服务器访问http资源会报Mixed Content混合内容错误。 一般有两种解决方案,一是升级minio服务,配置ssl证书&#xff0c…

人工智能|计算机视觉——微表情识别(Micro expression recognition)的研究现状

一、简述 微表情是一种特殊的面部表情,与普通的表情相比,微表情主要有以下特点: 持续时间短,通常只有1/25s~1/3s;动作强度低,难以察觉;在无意识状态下产生,通常难以掩饰或伪装;对微表情的分析通常需要在视频中,而普通表情在图像中就可以分析。由于微表情在无意识状态…

2024年9月中国电子学会青少年软件编程(Python)等级考试试卷(六级)答案 + 解析

一、单选题 1、下面代码运行后出现的图像是?( ) import matplotlib.pyplot as plt import numpy as np x np.array([A, B, C, D]) y np.array([30, 25, 15, 35]) plt.bar(x, y) plt.show() A. B. C. D. 正确答案:A 答案…