MATLAB APP Designer设计之图片处理
学校开了一门MATLAB的课程,但是用的是2015b版本的教材和软件,APP Designer是在2016b的版本推出的,所以老师教的还是GUI设计。用过APP Designer的都知道,比老版的GUI设计好很多,功能多,代码逻辑也更清晰。但是网上现有的APP Designer的资料很少,可以说基本找不到,这让我在做综合作业时无法借鉴,所以就自己参考了一些资料,整合在 APP Designer中,希望对以后的(大学生)有帮助。
因为作业是以word文档的方式上交作业的,所以这里分享word文档,里面写的很详细。
额,上传不了word文档,,害
目 录
一、概述 4
二、前期准备 4
2.1APP界面搭建5
2.2APP基本功能搭建6
2.2.1图片选择 6
2.2.2退出程序 6
2.2.3保存图片 7
2.2.4窗口布局视图 8
三、设计阶段8
3.1基础图片处理8
3.1.1原始图片8
3.1.2图像边界 9
3.1.3图像透视 9
3.1.4图像镜像 10
3.2图像的复杂处理10
3.2.1空间变换10
3.2.2雾天处理 11
3.2.3梯度运算 12
3.3清除图片 13
3.4高级功能_特征识别 13
3.5额外功能16
四、软件使用方法 16
4.1基础图片处理使用方法 17
4.2图像的复杂处理的使用方法 17
4.3清除图片的使用方法 18
4.4高级功能_特征向量的使用方法 18
五、感想和评分 19
六、参考文献19
MATLAB图像处理基于App Designer
- 概述
MathWorks公司是世界领先的为工程师和科学家提供数学计算软件的开发商,公司始终致力于加快科学研究和工程技术革新的步伐。MATLAB强大的数学分析能力可以帮助科学家和工程师门避开繁琐的编程细节,从而集中精力进行算法研究,大大提高研发效率。如果再配合GUI图形用户界面开发能力,研发工程师门就可以迅速将算法转变为实用软件。Google产品高级副总裁Jonathan Rosenbeng曾说:“如果你想在谷歌工作,请确保你会用MATLAB。”
构建图形用户界面,Matlab提供了两种工具,一是用guide
构建,俗称GUI
,在2019a版本中移除;二是用App Designer
,俗称App
,自2016a版本推出,这是官方推荐的,也是以后主流的框架。
本次实验就是建立在App Designer架构上,相比于GUI,它提供了更美观的用户界面,更简洁更清晰的代码框架,在稳定性和流畅性上也提升了不少。但是在使用方面与GUI基本一致。这次的图形处理有着系统性的框架,也可以被称为一个App。
- 前期准备
2.1APP界面搭建
基本界面有一些组件搭建完成,其中包含面板作为基本的放置界面。按钮作为图形处理的功能选项的触发条件。最后是菜单界面,其中包含APP的基本功能,还有高级功能选项,额外功能选项。界面如下
菜单功能界面如下
2.2APP基本功能搭建
2.2.1图片选择
设想是在每一个功能的按钮按下去后就选择图片,但是功能高达7个,不可能每一个按钮的回调函数都写一遍 ,所以用到辅助函数,也就是全局函数,只需要在每个按钮的回调前面调用这个函数就可以。逻辑框图如下
代码如下
2.2.2退出程序
在菜单下拉后面有显示Exit的选项,按下后就退出程序。其中使用questdlg配合Switch分支选择实现退出的选择。代码如下
退出显示效果如下
默认选择的是No
2.2.3保存图片
保存图片与选择图片类似的操作。代码如下
当然,也用msgbox函数做了对话框提示,如下
2.2.4窗口布局视图
因为功能多,显示的图片也比较多,所以采用了nexttile()函数来分布每一个图片。为了统一管理,将这个函数变量写在了私有属性,相当于全局变量,可以在APP的全部地方调用。代码如下
三、设计阶段
3.1基础图片处理
3.1.1原始图片
显示原始图片只需要调用辅助函数,然后显示在视图布局就可以,并起标题。代码如下
3.1.2图像边界
先调用辅助函数选择图片并获得图片信息,然后通过围绕边界进行镜像反射来扩展像边界。最后用app.Pic这个全局变量接受变换后的图形信息,作为保存的参数。代码如下
3.1.3图像透视
先调用辅助函数选择图片并获得图片信息,然后使用imagesc函数控制数据值到颜色图的颜色映射。最后用app.Pic这个全局变量接受变换后的图形信息,作为保存的参数。代码如下
3.1.4图像镜像
先调用辅助函数选择图片并获得图片信息,然后翻转图片矩阵。最后用app.Pic这个全局变量接受变换后的图形信息,作为保存的参数。代码如下
3.2图像的复杂处理
3.2.1空间变换
先调用辅助函数选择图片并获得图片信息。逻辑图如下
代码如下
最后还是要用app.Pic这个全局变量接受变换后的图形信息,作为保存的参数。
3.2.2雾天处理
雾天是科技与发展带来的不可避免的麻烦,在机器的图像识别中很影响精度,所以有了一下的处理,尽可能的去除雾天的影响。逻辑图如下
代码如下
3.2.3梯度运算
图像微分增强了边缘和其他突变,如噪声,并削弱了灰度变化缓慢的区域。在进行锐度变化增强处理中,细线要比阶梯强,点比细线强。梯度运算也是微分的一种。逻辑图如下
代码如下
3.3清除图片
这个在设计上遇到了好多问题,在常见的是使用clear去清除图片,单是只能清除上一次的。所以改用了cla命令来清除图片,但是无法清除title标题,只能说美中不足。代码如下
3.4高级功能_特征识别
这个是综合作业中最难的一点,涉及到了许多知识,书也是看了好久才看懂,目前实现的方法在精度上有很多不足。首先介绍一下SIFI特征,这个是关键。SIFI即尺度不变特征变换,是一种对于旋转,缩放,亮度变化保持不变的特征,改特征广泛应用于物体识别,机器人地图感知和导航,影像缝合,3D模型建立,手势识别,影像追踪和动作对比等领域。
逻辑图如下
重要函数的功能如下
代码如下
3.5额外功能
这个功能是我自己加上去的,其实与图像处理没有关系,但是我想这是综合作业,所以就加上去了,在前几次的实验的自我练习中要求设计一个计算器,我也用APP Designer写了一个,然后用两个APP连接的方法进行连接起来。代码如下
计算器界面如下
四、软件使用方法
4.1基础图片处理使用方法
4.2图像的复杂处理的使用方法
4.3清除图片的使用方法
4.4高级功能_特征向量的使用方法
需要注意,由于先传入的物品的的图像,在传入背景的图片,所以顺序不能反。
- 感想和评分
MATLAB的功能真的很全,在科研,在科技的前端真的有很大帮助,我想Google的产品副仲裁没有说错,在一个科技公司,MATLAB的能力真的很重要。很感谢这次的综合作业,让我了解了MATLAB的许多强大的功能。这次之所以选择图片处理这个主题,主要是我目前在自学基于Unity的AR Foundation系统的内容,无论是AR,VR还是MR其追踪定位的能力是决定系统可靠性和精度的关键。然而一切技术都要来自于特征值的匹配,系统精度取决于特征值匹配算法的精度。在查阅资料时发现,实现特征值匹配的方法其实有很多,例如Haar-like特征,Hog特征,LBP特征等等,不同的方法在不同的物品,不同背景的颜色,光照强度等等的特征点识别有差别。
然而时间精力有限,本次从搭建框架,每一个回调都是自己亲自写的,当然也参照了许多大佬的案例代码。在实践过程中遇到了许多问题,如许多函数的功能根本就不知道怎么用,是否存在我想要的功能的函数,这里感谢群友的帮助,让我学会了不懂的可以doc 打开MATLAB的手册,一一寻找。当然本次的APP Designer也有很多问题,比如清除图片不能清除标题,保存只能保存最近一张处理的图片。时间精力有限,目前只能这样,等待以后的改进。
从工作量上来讲,属于比较多的,且网上大都是老版GUI的案例,新版的APP Designer少之甚少,无借鉴的案例。从难度来讲,书中提及的图形处理方面已经很成熟了,很难有创新。最难的部分是特征匹配,但也是参考的书中方法,只不过通过自己的理解和方法整合到APP Designer中。
- 参考文献
[1]王文峰.MATLAB计算机视觉与机器认知[M].北京:北京航空航天大学出版社,2017.8
[2]黄少罗.MATLAB2020图形与图像处理从入门到精通[M].北京:机械工业出版社,2020.12
[3]李星新.MATLAB2020GUI程序设计从入门到精通[M].北京:机械工业出版社,2021.4
[4]Erin Pangilinan.下一代空间计算:AR与VR创新理论与实践[M].北京:电子工业出版社,2020.10
MATLAB APP Designer设计之图片处理相关推荐
- 用MATLAB app designer设计人机交互界面——二阶线性动态电路可视化分析的研究
用MATLAB app designer设计人机交互界面--二阶线性动态电路可视化分析的研究 这是我第一次尝试写博客,我试着给出电路课上要求的电路实验编程.但是电路的类型有点儿多,所以我只以二阶动态电 ...
- 基于MATLAB APP Designer 和 Python 的音视频剪辑
简介 本软件是基于 MATLAB APP Designer 和 Python 联合编制的一款简易音视频剪辑软件,可以拿来练手MATLAB APP Designer.面向对象编程.假期空闲时和同学一起自 ...
- 汽车各档爬坡度曲线matlab,基于MATLAB App Designer的汽车爬坡能力建模与仿真
1. 引言 汽车常常需要在不同区域的不同道路上行驶,尤其在山区道路上,坡陡路窄,汽车必须具有一定的爬坡能力,爬坡能力通常由最大爬坡度来衡量,最大爬坡度是汽车动力性能的重要指标之一.为此开展了基于MAT ...
- 基于Matlab App Designer的语音信号分析与处理(二):IIR和FIR滤波器的设计,语音信号的滤波
接上文:https://blog.csdn.net/weixin_53877178/article/details/122470759 目录 一.课题的任务 二.内容.步骤和要求 (1)语音信号的采集 ...
- 基于MATLAB的app designer设计
** 基于MATLAB的app designer设计 ** 前言:在日常的程序设计时,我们通常只是设计代码,而代码往往是很空洞的,对于专业的计算机程序员而言,这或许不是很重要的问题,但是对于大多数的人 ...
- Matlab App Designer 实现简单程序的设计笔记 (实时更新)
问题引入 最近发现matlab的GUI界面马上就要被取消了,取而代之matlab官方弄了一个叫App Designer的东西,打开看了一下,发现截面还挺好看的,比原本的GUI好友好多了.所以做个笔记, ...
- 《MATLAB App Designer从入门到实践》随书源代码
GUIDE已经被MATLAB抛弃了,你还不知道吗?App Designer才是发展的方向 目前市面上MATLAB GUI编程的书籍琳琅满目,但大多数是基于GUIDE开发的,MATLAB从2016年开始 ...
- MATLAB App Designer入门实战(一)
最近也是在研究MATLAB App Designer,开这样的一个系列主要是为了记录我在研究App Designer时遇到的一部分问题的解决,和一部分有趣的想法,每一篇文章会展示如何将一个项目mlap ...
- MATLAB App Designer GUI开发从0到1(二)
文章目录 前言 一.开关以及旋钮 1. 左上角:旋钮 2.右上角:90度仪表 3.左下角:分档开关 4.右下角:开关 5.对旋钮微调 二.画图 1. 普通画图 2.添加小组件 三.回调函数 简单的回调 ...
- Matlab App Designer 学习笔记
提示:本文的学习视频来自B站小刘老师的教程 链接:https://www.bilibili.com/video/BV16f4y147x9?from=search&seid=2070258926 ...
最新文章
- 如何应对安全漏洞的修复
- leetcode算法题--打印从1到最大的n位数
- [转]获取xml节点值和属性值(兼容ie和firefox)
- eclipse egit 报错 The current branch is not configured for pull No value for key branch.master
- .NET6之MiniAPI(二十四):用Polly重试
- vscode 编辑器快捷键
- 互联网企业安全之端口监控
- 1087 有多少不同的值 (20分)
- 【PHP学习】—利用ajax原理实现密码修改功能(九)
- python3编程环境,使用 python3 环境开发。
- Java中关于字符类型在Unicode表中表示
- 解决局域网文件共享“****无法复制,指定的网络名不可用”
- 【深度强化学习】交叉熵方法
- CSS(Emmet语法、复合选择器、元素显示模式、背景)
- [转]采用SNMP(简单网络管理协议)实现国税系统广域网络性能管理的研究
- localStorage使用实例-进入显示广告,点击关闭之后,刷新网页不再出现
- 二维数组名做参数传递问题
- veriog中的latch问题
- 数据库分片(Database Sharding)
- SQL注入漏洞-GET注入