数字图像处理系统学习报告

实验室学习报告


选题:基于 MATLAB GUI 的数字图像处理系统设计

学习方法:

  • 全篇阅读,梳理论文思路,了解大致方向
  • 精读细读,逐个击破
  • 了解相关概念,丰富理论知识
  • 通过代码实践,加深理解

不足与问题

  • MATLAB了解不够,很多基本语句不理解

研究背景

设计出发点

  • 数字图像处理技术的不断发展和完善,应用前景广阔,应用领域广泛,GUI 的设计趋于流行。
  • 科技进步给图像处理技术提出了更高的要求和更加明确的方向。

设计目的

  • 给数字图像处理技术的学习和研究提供良好平台
  • 用户在使用本系统的时候,无需关心所执行的操作是如何运行,而把重点集中在所提供的界面上。

实现功能

  • 文件:打开,保存,打印预览和打印等;
  • 编辑:图像大小,加噪,旋转等;
  • 图像变换:DFT,DCT,RADON 变换等;
  • 图像类型转换,图像滤波,图像边缘检测等;
  • 人性化的软件的图形界面,操作简单,易于功能
  • 修改和功能扩充。

在这里插入图片描述

运行环境

MATLAB 提供的 GUI 平台

  • M A T L A B MATLAB MATLAB
    MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可用来创建用户界面,以及调用其它语言(包括C、C++、Java、Python、FORTRAN)编写的程序。 MATLAB主要用于数值运算,但利用为数众多的附加工具箱,它也适合不同领域的应用,例如控制系统设计与分析、影像处理、深度学习、信号处理与通讯、金融建模和分析等。

  • G U I GUI GUI
    GUI 即人机交互图形化用户界面设计,图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。与通过键盘输入文本或字符命令来完成例行任务的字符界面相比,图形用户界面有许多优点。图形用户界面由窗口、下拉菜单、对话框及其相应的控制机制构成,在各种新式应用程序中都是标准化的,即相同的操作总是以同样的方式来完成,在图形用户界面,用户看到和操作的都是图形对象,应用的是计算机图形学的技术。

系统设计的关键点

句柄的获取

1.句柄图形

  • 概念:一组底层图形函数的名称
  • 用途:在 MATLAB 中生成图形,他提供了对图形的高级控制
  • 基本思想:MATLAB 的每一个可视部分就是一个对象,每个对象都有一个相应的唯一标示符,这就是句柄。
  • 作用:通过对句柄图形的操作,就可以对该句柄图形所对应的对象进行控制,比如修改属性,调用其回调过程等。

2.图形对象

  • uimenu(界面菜单)
    基础例子
    代码实现
h = figure;
set(h,'unit','normalized','color','default',...
    'position',[0.1 0.1 0.8 0.8],'menu','none',...
    'numbertitl','off','name','GUI 生成菜单');
h1 = uimenu(h,'label','一级菜单');
h2 = uimenu(h1,'label','二级菜单');
h3 = uimenu(h2,'label','三级菜单');
h4 = uimenu(h3,'label','四级菜单');
h5 = uimenu(h4,'label','五级菜单');
h6 = uimenu(h5,'label','六级菜单');
h7 = uimenu(h6,'label','七级菜单');
h8 = uimenu(h7,'label','八级菜单');
h9 = uimenu(h8,'label','九级菜单');

代码解析:

  • set(h,
    *‘unit’,‘normalized’,属性
    ‘color’,‘default’,…设置颜色, d e f a u l t default default为默认
    ‘position’,[0.1 0.1 0.8 0.8],位置
    ‘menu’,‘none’,…存在 n o n e none none f i g u r e figure figure两种情况,是否显示菜单
    ‘numbertitl’,‘off’,存在 o n on on o f f off off两种情况,表示默认的名字是否显示的问题
    ‘name’,‘GUI 生成菜单’);自定义名称

效果图

在这里插入图片描述

  • uicontrol
    用途:用于创建uicontrol图形对象(用户界面控件),以实现 图形用户界面

简单语句举例

代码

hpop = uicontrol('Style', 'popup',...
'String', 'hsv|hot|cool|gray',...
'Position', [20 320 100 50],...
'Callback', ' setmap');

效果示意:
代码运行后

  • uicontextmenu (右键菜单)
    举例

代码

a = figure;
 GUI.bMenu_=uicontextmenu;
 m1 = uimenu(GUI.bMenu_,'Label','Time'); 
 m11= uimenu(m1,'label','up','callback',@time_sortup);
 set(a,'uicontextmenu',GUI.bMenu_);

效果图
在这里插入图片描述
3.GUI对象层次结构在这里插入图片描述

  • 最下层的每一个基本的对象(影像对象,线条对象等就是我们需要处理的对象)都是基于每一个的坐标系对象的
  • 常见的获取句柄的函数
  • g c f gcf gcf :获取当前图形窗口的句柄
    g c a gca gca :获取当前坐标轴的句柄
    g c o gco gco :获取当前对象的句柄
    g c b o gcbo gcbo :获取当前正在调用的对象的句柄
    g c b f gcbf gcbf :获取包括正在执行调用的对象的图形的句柄

自定义参数实现

1.设计目的

用户可以在弹出的对话框中,输入任意自定义的参数来实现相关处理的操作

2.调用函数

  • 函数调用格式:answer = inputdlg(prompt,title,n lines,def)
  • 详细解析:
    answer 字符串单元数组,用于储存用户输入的字符串或字符数
    =inputdlg(prompt, 提示字符串
    title,对话框标题
    n lines,输入最大行数
    def) 认的输入字符串,维数与 prompt 相同
  • 举例

代码

prompt={‘阶数:’,’截止频率:’}; 
def={'2','5'}; 
answer=inputdlg(prompt,'请输入:',1,def);
If~isempty(answer) 
a = str2num(answer{1}); 
b = str2num(answer{2}); 
end 
 

运行效果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值