目录
-
实验描述
本文章是基于MATLAB数字图像处理课程的结课作业,利用MATLAB设计了可视化界面进行基础版图像处理,其中功能包括作业要求的功能,额外还设计了一些创新功能,包括但不限于相对亮度调整、返回上一步等。其中内容多来自于课程内容和上网查询资料获取到的内容的融会贯通,通过本次实验,完成了图像处理app的实现可以进行简单的图像处理,以及特殊功能检测。
-
设计思路
-
功能模块
-
基础界面
-
开发工具
MATLAB R2021a App Designer
-
基础功能
-
最重要的全局变量(写在前面)
properties (Access = private)
originalpicture; % Description
lastpicture;
changedpicture;
changedpicture2;
upgradepicture;
D0;
end
-
导入图片
函数uigetfile()打开文件选择对话框,选择文件,返回文件名和文件路径。有了文件名和文件路径后读文件函数读取相应的文件,将返回的文件路径和文件名赋给图片,使用imshow将其显示在界面指定位置上。如果未选择文件则弹出窗口,显示提醒未选择图片,然后返回图像界面。
[filename,pathname] = uigetfile({'*.jpg';'*.bmp';'*.*'},'选择图片');
if isequal(filename,0)||isequal(pathname,0)
msgbox('您未选择图片','温馨提示','help');
return;
else
x=strcat(pathname,filename);
app.originalpicture=imread(x);
imshow(app.originalpicture,'Parent',app.UIAxes1);
app.lastpicture=app.originalpicture;
app.changedpicture=app.originalpicture;
end
若不选择图像,点击取消的话会弹出提醒窗口
-
从摄像头获取照片
使用videoinput函数生成窗口对象并同步画面。利用函数获取图片的帧,当关闭窗口时,将关闭窗口时的截取图像显示在规定的坐标中。
obj = videoinput('winvideo',1);
h=preview(obj);
while ishandle(h)
app.originalpicture = getsnapshot(obj); % 获取帧
app.changedpicture=app.originalpicture;
imshow(app.originalpicture,'Parent',app.UIAxes1);
title(app.UIAxes1,'原始图片');
drawnow
end