app的界面设计如下所示:
分为两个主要的内容:
1.三个按钮及其功能
第一个按钮的主要实现的功能是将图形导入,并且读取文件
第二个按钮的主要实现的功能是选择是否退出程序,默认的选择是否,如果选择退出程序,则则执行关闭app
第三个按钮的主要是提示app的基本功能
2.图形显示区域
图形显示分为四个部分:
第一个为原图显示
第二个为二值化图
第三个为灰度图
第四个为边缘检测图
用户可以通过选择图像按钮,将图形导入文件中,显示原图、二值化图、灰度图、边缘检测图,此外还可以通过退出程序按钮退出程序,以及关于按钮查看app的基本信息,及其基本功能。
%消息盒子的用法msgbox
msgbox("这是一个图形处理的demo","对话框","help");
%此外还可以使用help msgbox或者doc msgbox查看帮助文档
为此第一个(关于)button下的代码可以设置为下:
function Button_3Pushed(app, event)%关于按钮的回调函数
msgbox("这是一个图形处理的demo","对话框","help");
end
2.退出程序的按钮代码实现:
questdlg('你是男生还是女生?','标题','男生','女生','男生');
%此时会出现一个问号提示框,问题为你是男生还是女生?
%标题为对应的代码的标题可以修改
%选项为男生还是女生
%默认的选项为男生,如果默认不为提示选项值,会提示信息,不推荐这样使用
questdlg的运行结果为:
此时退出按钮的代码可以书写为:
function Button_2Pushed(app, event)
choice=questdlg("您是要关闭吗?","关闭","Yes","No","No");
switch choice
case "Yes"
delete(app.UIFigure);
return;
case "No"
return;
end
end
3.选择图像按钮的回调函数可以书写为
function ButtonPushed(app, event)
[filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},"选择图像");%此处的代码是通过访问图像,返回图像的文件名和路径
if isequal(filename,0)||isequal(pathname,0)%此时判断是否成功选择文件,如果没有则提示错误提示
errordlg("没有选中文件","错误");%错误提示的信息为
else
file_name=strcat(pathname,filename);%将文件名和路径合成,可以访问图片
im=imread(file_name);%读取图片
%原图
imshow(im,'Parent',app.UIAxes);%显示原图在app.UIAxes
%二值化
thresh = graythresh(im); %自动确定二值化阈
two_img=im2bw(im,thresh); % thresh=0.5 表示将灰度等级在128以下的像素全
%部变为黑色,将灰度等级在128以上的像素全部变为白色。
imshow(two_img,'Parent',app.UIAxes2);%显示二值化图在app.UIAxes2
%灰度图
gray_image=rgb2gray(im);
imshow(gray_image,'Parent',app.UIAxes3);%将灰度图显示在app.UIAxes3
%边缘检测
img_edge = edge(gray_image,'Canny',0.35);
imshow(img_edge,'Parent',app.UIAxes4);%将边缘1检测图显示在app.UIAxes4
end
end
end