基于appdesigner的图像处理工具箱

基于appdesigner的图像处理工具箱

  • 1.app的基本功能
    • app的界面设计
  • 2.appdesigner的代码实现
    • 关于按钮的代码实现
      • 代码实现
  • 3.app运行结果

1.app的基本功能

app的界面设计如下所示:
分为两个主要的内容:

1.三个按钮及其功能

第一个按钮的主要实现的功能是将图形导入,并且读取文件
第二个按钮的主要实现的功能是选择是否退出程序,默认的选择是否,如果选择退出程序,则则执行关闭app
第三个按钮的主要是提示app的基本功能

2.图形显示区域
图形显示分为四个部分:
第一个为原图显示
第二个为二值化图
第三个为灰度图
第四个为边缘检测图

app的界面设计

基于appdesigner的图像处理工具箱_第1张图片
用户可以通过选择图像按钮,将图形导入文件中,显示原图、二值化图、灰度图、边缘检测图,此外还可以通过退出程序按钮退出程序,以及关于按钮查看app的基本信息,及其基本功能。

2.appdesigner的代码实现

关于按钮的代码实现

代码实现

1.关于按钮的代码实现:
主要的功能是弹出一个消息盒子
基于appdesigner的图像处理工具箱_第2张图片

%消息盒子的用法msgbox
msgbox("这是一个图形处理的demo","对话框","help");
%此外还可以使用help msgbox或者doc msgbox查看帮助文档

为此第一个(关于)button下的代码可以设置为下:

function Button_3Pushed(app, event)%关于按钮的回调函数
     msgbox("这是一个图形处理的demo","对话框","help");
end

2.退出程序的按钮代码实现:

questdlg('你是男生还是女生?','标题','男生','女生','男生');
%此时会出现一个问号提示框,问题为你是男生还是女生?
%标题为对应的代码的标题可以修改
%选项为男生还是女生
%默认的选项为男生,如果默认不为提示选项值,会提示信息,不推荐这样使用

questdlg的运行结果为:
基于appdesigner的图像处理工具箱_第3张图片
此时退出按钮的代码可以书写为:

 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

3.app运行结果

基于appdesigner的图像处理工具箱_第4张图片
如果有疑问、需要源代码、app的请在下方留言

你可能感兴趣的:(MATLAB,appdesigner,matlab)