MATLAB大作业——美图秀秀

本文介绍了一项使用MATLAB的APP Designer完成的大作业,详细展示了如何设计一个简易版的美图秀秀应用。应用包含了导入图片、保存、重置、旋转、裁剪、翻转等基础功能,以及灰度化、黑白、底片、素描等多种图像效果,还涵盖了调色、美颜、贴图和相框等特色功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于APP Designer完成MATLAB大作业之简易版美图秀秀设计

目录​​​​​​​

一、基础功能

二、添加效果

三、调色

四、美颜

五、贴图

六、相框


一、基础功能

1 导入图片

function ButtonImport(app, event)
            [filename,pathname]=uigetfile({'*.*';'*.jpg';'*.tif';'*.png';'*.bmp'},'导入图片');%选择图片的格式
            if isequal(pathname,0)
                errordlg('未选择文件','错误');%创建错误对话框
                return
            else
                file=[pathname filename];
                I=imread(file);
                app.OriginalImage=file;% app.OriginalImage为全局变量,存储原始图像
                app.ChangedImage=I;% app.ChangedImage为全局变量,存储最近改变的图像
                app.EffectImage=I;% app.EffectImage为全局变量,与app.ChangedImage作用相似,作为某些功能的读入图像
            end
                imshow(I,'Parent',app.UIAxes);
        end

效果:

2 保存图片

function ButtonSave(app, event)
            [filename,pathname]=uiputfile({'*.*';'*.jpg';'*.tif';'*.png';'*.bmp'},'保存图片');%选择图片的格式
            if isequal(pathname,0)
                msgbox("保存失败!");
            else
                I=fullfile(pathname,filename);% 构建完整文件名
                imwrite(app.ChangedImage,I);
                msgbox("保存成功!");
            end
        end

效果:

3 重置

function ButtonReset(app, event)
            app.ChangedImage=imread(app.OriginalImage);%app.OriginalImage为全局变量,存储原始图像
            imshow(app.ChangedImage,'Parent',app.UIAxes);
            app.Slider.Value=0;% 令布局中的滑块归为默认位置
            app.Slider_2.Value=0;
            app.Slider_3.Value=0;
            app.Slider_5.Value=0;
            app.Slider_6.Value=0;
        end

4 退出

function ButtonExit(app, event)
            exit=questdlg('是否退出程序?','关闭','Yes','No','No');%创建问题对话框,是否关闭程序,默认为No
            switch exit
                case 'Yes'
                    delete(app.UIFigure);%删除APP中的UI图窗
                    return
                case 'No'
                    return
            end
        end

效果: 

5 旋转

function ButtonRotate(app, event)
            I=app.ChangedImage;
            R=imrotate(I,-90);% 顺时针旋转90度
            app.ChangedImage=R;
            imshow(app.ChangedImage,'Parent',app.UIAxes);
            app.EffectImage=R;
        end

效果: 

6 裁剪

function ButtonCrop(app, event)
            I=app.ChangedImage;
            imshow(I);% 弹出裁剪弹窗
            [x,y]=ginput(2);% 识别坐标区区域
            close;
            I2=imcrop(I,[x(1),y(1),abs(x(1)-x(2)),abs(y(1)-y(2))]);
            imshow(I2,'Parent',app.UIAxes)
            app.ChangedImage=I2;
            app.EffectImage=I2;
        end

效果: 

7 水平翻转

function ButtonH_flip(app, event)
            I=app.ChangedImage;
            F=fliplr(I);
            imshow(F,'Parent',app.UIAxes);
            app.ChangedImage=F;
            app.EffectImage=F;
        end

效果: 

8 垂直翻转

function ButtonV_flip(app, event)
            I=app.ChangedImage;
            F=flipud(I);
            imshow(F,'Parent',app.UIAxes);
            app.ChangedImage=F;
            app.EffectImage=F;
        end

效果: 

二、添加效果

1 灰度化

function ButtonGray(app, event)
            I=app.EffectImage;
            I=im2gray(I);
            imshow(I,'Parent',app.UIAxes);
           app.Changed
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值