数字图像处理实验1-9点击下列链接有源码和链接:
(1)打开
为了好看点,我们用matlab的guide做程序界面,打开guide很简单,只要在命令窗口输入guide就可以。
打开后会变成这个:
界面使用非常简单,都是拖拽格式,想要什么就拖什么就可以,整个界面也都可以被编辑。比如我拖拽的个摁纽。
只要点击callback旁边那个摁纽,就可以跳转到代码界面:
Opening函数的输入参数中,hObject为当前figure的句柄;eventdata为保留参数,值为空;handles为GUI数据;varargin为主函数所有的输入参数,是一个单元个数不定的单元数组。
(2)常用到的组件
1、用来显示图片的一个组件是“axes”这个组件,一般把图片显示在这个区域内,我们随意拖拽一个axes到界面
2、这时候我们在摁纽的代码里面写一个打开文件的方法:
% --- Executes on button press in open_file.
function open_file_Callback(hObject, eventdata, handles)
[filename,pathname]=uigetfile({'*.jpg'},'选择图片');%文件选择,这里可以选择可以打开的图片格式
str=[pathname filename];%被选择的文件路径
[handles.I,handles.map]=imread(str);%读取图片
in_image=[handles.I,handles.map];
guidata(hObject,handles);%图像串行化,保存在hObject,这样我整个页面都能取到handles的值
axes(handles.axes1);%把显示范围限定在axes1
imshow(in_image);%显示图片
3、ctrl+s保存之后,我们就可以运行这个程序打开一张图片:
注意:
guidata(hObject,handles);%图像串行化,保存在hObject,这样我整个页面都能取到handles的值
这一句的意思是把handles的值放到hObject里,handles就代表了窗口,hObject相当于一个可以程序当前代码页面取到的值,一般用来传递全局变量。