MATLAB课程设计--GUI图像处理 下载本文

4、具体设计

现介绍各个功能模块的功能与实现。 4.1菜单栏的设计。 通过Menu Editor

创建如下菜单,通过以下菜单来控制显示或隐藏功能按键

5 / 52

以“编辑”菜单中“图像变形”中的“图像翻转”为例说明实现用户界面功能键“图像翻转”的显示与隐藏。 实现该功能的程序段如下:

function tuxiangfanzhuan_Callback(hObject, eventdata, handles) % hObject handle to tuxiangfanzhuan (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) set(handles.uipanel7,'Visible','on'); if strcmp(get(gcbo, 'Checked'),'on') set(handles.uipanel7,'Visible','on'); set(gcbo, 'Checked', 'off');

set(handles.uipanel7,'Visible','off'); else

set(gcbo, 'Checked', 'on'); end

该段程序通过设置“图像翻转”功能键对应的句柄uipanel7中的“Visible”属性的开关来实现该功能键的显示隐藏。其他同理。 4.2图像的读取和保存。

(1)利用“文件”菜单中的“打开”、“保存为?”分别实现图片的读取与保存。

6 / 52

利用matlab中 “ uigetfile”、“imread” “imshow”实现图像文件的读取与显示:

function openfile_Callback(hObject, eventdata, handles) % hObject handle to openfile (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

[filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'载入图像');

if isequal(filename,0)|isequal(pathname,0) errordlg('没有选中文件','出错'); return; else

file=[pathname,filename];

global S %设置一个全局变量S,保存初始图像路径,以便之后的还原操作 S=file;

7 / 52

x=imread(file);

set(handles.axes1,'HandleVisibility','ON'); axes(handles.axes1); imshow(x);

set(handles.axes1,'HandleVisibility','OFF'); axes(handles.axes2); imshow(x); handles.img=x;

guidata(hObject,handles); end

程序关键部分:

通过[filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'载入图像')选择相应路径打开的图像;通过file=[pathname,filename]; x=imread(file); 读取选中的图像;最后,通过imshow(x)在显示区域上显示图像。

(2)图像保存。

利用“uiputfile”、“imwrite”函数实现图像文件的保存。

function save_Callback(hObject, eventdata, handles) % hObject handle to save (see GCBO)

8 / 52