当前位置: 首页 > news >正文

MATLAB GUI界面设计 第四章——图像的绘制与显示

参考教程:MATLAB App Designer基础教程Matlab GUI界面设计(全集更新完毕-用户界面设计appdesigner(中文)Matlab Gui教程_哔哩哔哩_bilibili

一、坐标区组件

1、函数图像的绘制与显示

(1)新建一个工程,在画布中添加按钮组件和坐标区UIAxes组件,其中可对坐标区组件的标题、XY标签、是否显示网格和边框、背景颜色等属性进行更改。

(2)对按钮添加回调函数,回调函数执行的代码如下,主要功能为在函数图像显示器绘制两个共x轴函数图像。

% 生成X轴采样点的值
x = 0:0.01:10;% 生成Y轴对应X轴采样点的值
y1 = sin(x);
y2 = cos(x);% 使用plot函数绘图,指定绘图区域为坐标区(plot函数的第一个参数为坐标区对象)
hold(app.UIAxes,"on"); 		% 设置重复在坐标区上画图,不擦除上一次的图象
grid(app.UIAxes,"on"); 		% 坐标区中显示网格
plot(app.UIAxes,x,y1,'r'); 	% 在坐标区中绘制f=(x,y1)图像,颜色为红色
plot(app.UIAxes,x,y2,'g'); 	% 在坐标区中绘制f=(x,y2)图像,颜色为绿色

(3)试运行程序,点击绘图按钮后即可生成函数图像。

(4)在回调函数中增加语句“axis(app.UIAxes, ‘off’);”,即可隐藏坐标区的坐标轴,实际上,很多先前在MATLAB绘图中讲到的命令(如“hold on”和“grid on”),都可以通过这种演变方式实现在坐标区绘图中。

2、外部图像的显示

(1)新建一个工程,在画布中添加按钮组件和坐标区UIAxes组件,其中坐标区组件用于显示图片,所以XY标签可以直接去掉,值置为空即可。

(2)对按钮添加回调函数,回调函数执行的代码如下,主要功能为读取MATLAB路径下的一个图片文件,并显示在坐标区组件上。(温馨提示,“im”开头的系统函数几乎都与图像处理有关)

% 读入图片文件
photo_file = 'C:\Users\Zevalin\Documents\MATLAB\Big_Big_Wolf.jpg';
im = imread(photo_file); % “im”开头的系统函数几乎都与图像处理有关% 图片显示在坐标区
imshow(im, 'Parent', app.UIAxes); % 图像显示在坐标区

(3)试运行程序,点击图像显示按钮后即可生成灰太狼图像。

二、案例——图片处理APP

1、其它知识储备

(1)MATLAB中的msgbox为信息对话框,执行msgbox语句后便会弹出信息对话框,其基本用法有如下几种:

①“msgbox('显示内容', '标题')”。

②“msgbox('显示内容', '标题', '系统图标')”,系统图标主要有none、error、help、warn。

③“msgbox('显示内容', '标题', 'custom', 'lconData', 'lconCMap')”。

(2)MATLAB中的questdlg为提问对话框,执行questdlg语句后便会弹出提问对话框,其基本用法如下:

①“questdlg('提问内容', '标题', '选项1', '选项2', '选项3', '默认选项(需与前面的一个选项相同)')”,其中可选的选项可以是两个或三个,此外,弹出的提问对话框会默认高亮一个选项(按回车就会默认选择它)。

②当选择一个选项后,该语句会返回用户的选择。

(3)uigetfile语句可以在UI设计中实现获取文件信息的功能,具体用法如下:

[FileName,PathName,Filterindex]= uigetfile(FilterSpec,DialogTitle,DefaultName)

        FileName:返回的文件名,如未选择文件将返回0

        PathName:返回的文件的路径,如未选择文件将返回0

        Filterlndex:选择的文件类型,如未选择文件将返回0

        FilterSpec:可选的文件类型设置,每个选项的格式为“*.<文件格式缩写>”,其中星号是正则表达式中的通配符,所有选项用大括号括起,半角分号分隔,如果写入“*.*”选项,则增加可选所有文件类型的选项

        DialogTitle:打开对话框的标题,一般位于左上角,可有可无,如果不写入此参数,默认为“选择要打开的文件”

        DefaultName:默认指向的文件名,可有可无

(4)MATLAB中的errordlg为错误提示框,执行errordlg语句后便会弹出错误提示框,其基本用法如下:

“errordlg('错误信息','标题')”。

2、前端制作

        添加3个按钮组件和4个坐标区组件进入画布。

3、后端制作

(1)右键“关于”按钮组件,添加回调函数,其中的代码如下,主要功能为显示对话框,告知用户本程序的功能。

msgbox('这是一个图像处理小程序', '关于', 'help');

(2)右键“退出程序”按钮组件,添加回调函数,其中的代码如下,主要功能为询问用户是否要退出程序,并执行用户的选择。

% 用提问对话框询问用户的选择并记入变量choice
choice = questdlg('您确定要退出程序吗', '程序退出流程', '狠心离去', '再想一想', '再想一想');% 执行用户的选择
switch choicecase '狠心离去' 			  % 退出程序delete(app.UIFigure); % 删除画布(画布对象下所有成员对象也会被删除)returncase '再想一想'return
end

(3)右键“选择图片文件”按钮组件,添加回调函数,其中的代码如下,主要功能为让用户选择图片文件,读入它的位置和文件名信息,根据这些打开对应的图片文件,然后分别转化为二值化图片、灰度图和边缘检测图片,并显示在相应区域。(需要说明的是,图像处理是一门大学问,此处不进行深入介绍)

% 让用户选择图片文件,读入它的位置和文件名信息
[FileName,PathName]= uigetfile({'*.jpg';'*.*'},'选择图片文件');% 判断用户是否未选中文件,未选中需要报错
if isequal(FileName, 0) || isequal(PathName, 0)errordlg('没有选中文件','错误');return
else% 记录选中文件的名字和路径,将它们连接起来,用于后续读入图片文件内容files = strcat(PathName,FileName);
end% 读入图片文件内容
im = imread(files);% 图像处理并显示
% 显示原图
imshow(im, 'Parent', app.UIAxes);
% 将原图处理成灰度图并显示灰度图
gray_image = rgb2gray(im);
imshow(gray_image, 'Parent', app.UIAxes_3);
% 将灰度图二值化并显示二值化图片
bw_image = imbinarize(gray_image);
imshow(bw_image, 'Parent', app.UIAxes_2);
% 将灰度图转化为边缘检测图片并显示边缘检测图片
edge_image = edge(gray_image, 'Canny');
imshow(edge_image, 'Parent', app.UIAxes_4);msgbox('转换完成','提示');

4、试运行

        保存文件后点击“运行”,测试APP是否满足需求。

相关文章:

  • 电路图识图基础知识-塔式起重机控制电路识图与操作要点(三十五)
  • 深入解析 Windows 文件查找命令(dir、gci)
  • 窗口函数的概念
  • 为什么android要使用Binder机制
  • 顶级思维方式——认知篇九(经典语录)《约翰·克利斯朵夫》
  • LangChain4j从入门到实战(一)
  • DeepSeek今天喝什么随机奶茶推荐器
  • [C#] Task
  • 飞算 JavaAI:重构 Java 开发范式的工程化实践
  • Prim(普里姆)算法
  • 网络/信号/电位跟踪
  • 嘉讯科技:医院电子病历系统的关键性作用
  • 60天python训练计划----day56
  • 深入浅出Node.js后端开发
  • UE5 AnimMontage 的混合(Blend)模式
  • Qt for OpenHarmony 编译鸿蒙调用的动态库
  • WPF中MVVM和MVVMLight模式
  • 卷积运算的历史
  • Gateway路径匹配规则易错点
  • Recent Advances in Speech Language Models: A Survey
  • wordpress500/长沙网站seo推广
  • 手机网站可以做公众号/nba西部排名
  • 网站后台有些不显示/濮阳市网站建设
  • 电脑怎样做幻灯片的网站/百度健康
  • 山东恒正建设有限公司 网站/百度云
  • 北京百度seo公司/seo综合查询中的具体内容有哪些