基于APP Designer完成MATLAB大作业之简易版美图秀秀设计
目录
一、基础功能
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
效果:
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
效果:
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
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
效果:
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
效果:
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
效果:
function ButtonH_flip(app, event)
I=app.ChangedImage;
F=fliplr(I);
imshow(F,'Parent',app.UIAxes);
app.ChangedImage=F;
app.EffectImage=F;
end
效果:
function ButtonV_flip(app, event)
I=app.ChangedImage;
F=flipud(I);
imshow(F,'Parent',app.UIAxes);
app.ChangedImage=F;
app.EffectImage=F;
end
效果:
二、添加效果
function ButtonGray(app, event)
I=app.EffectImage;
I=im2gray(I);
imshow(I,'Parent',app.UIAxes);
app.Changed