目录
大作业进度开始的有点晚,记一下学习心得。
首先学习一下GUI界面的制作。看了一下老师给的别人的源码,功能很多也很好,但是和我们自己的作业要求有点差别,而且也不能copy。我用的2020版matlab,直接在软件找已经找不到GUI,好像以后都要变成app了,但是这次大作业我们还是得做GUI,哈哈。
找了一下GUI基础教程。(补充一下心得:建议先了解一下handles再做回调会简单很多)
MATLAB的GUI界面设计:
从文件夹加载图片的GUI教程,创建按钮和坐标区。
新建一个GUI,保存为fig格式。实验要求显示的图片感觉好多,都不知道怎么排版比较好。建议多使用对齐工具和按钮组,让界面看起来更舒服。了解了一下基础的回弹事件,感觉GUI也挺简单的,放到对应函数里面去就好了。
打算先做一下GUI界面然后再慢慢调用函数。
下午做了一个简单的基础界面。
今天复习线代去了,晚上做一下matlab。
改了一下每个组件的Tag,然后在导入图片的callback回调事件中加入代码。
% '*.*'为显示当前文件夹中的所有文件;
% select a picture为文件对话框的标题;
% 'multiselect','on'为打开选择多个模式(默认为关);
axes(handles.origin)
[fn, pn, ~] = uigetfile('*.*','请选择所要识别的图片','multiselect','on');
I = imread([pn fn]);%读取图像参数为图像名称和图像路径
imshow(I);
参考了一下别人的代码,应该在界面初始化的时候设置所有按钮无法点击,不然有功能没有图片会出现问题,先加载图片才能使用功能。
%设置按钮不可点击
set(handles.grey,'Enable','off');
set(handles.binary,'Enable','off');
set(handles.getapple,'Enable','off');
set(handles.getcoin,'Enable','off');
set(handles.balance,'Enable','off');
set(handles.picadd,'Enable','off');
set(handles.picsub,'Enable','off');
set(handles.light,'Enable','off');
……
%写一个函数方便调用
function on(handles)
set(handles.grey,'Enable','on');
set(handles.binary,'Enable','on');
set(handles.getapple,'Enable','on');
set(handles.getcoin,'Enable','on');
set(handles.balance,'Enable','on');
set(handles.picadd,'Enable','on');
set(handles.picsub,'Enable','on');
set(handles.light,'Enable','on');
……
%调用方法
on(handles)%激活按钮
MATLAB GUI通过文件管理器保存图片:
h = figure('visible','off');
new_axes = copyobj(handles.window2,h);%axes1表示坐标系对象
set(new_axes,'Units','normalized','Position',[0.1 0.1 0.8