《数字图像处理》是一门多学科交叉的前沿课程,Matlab是教学中的常用软件,传统的基于命令行或者脚本文件的编程方法教学直观性较差.为此,以Matlab提供的图形用户编程界面(GUI)对图像处理教学演示系统进行设计.首先给出系统框架,并介绍了数字图像处理中的常用方法,其次应用GUI建立算法测试平台,给出具体实例.结果表明,利用GUI平台进行数字图像处理教学,界面友好,直观性强,具有较强的开放性,能够激发学生的兴趣,提高学习效率,效果良好.
function varargout = GUI(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @GUI_OpeningFcn, ...
'gui_OutputFcn', @GUI_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function GUI_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
function varargout = GUI_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
% 载入图像
function pushbutton1_Callback(hObject, eventdata, handles)
[fname,pname,index]=uigetfile({'*.jpg';'*.bmp'},'选择图片');
global c;
if index
str=[pname fname];
c=imread(str);
axes(handles.axes1);
imshow(c);
axis off
end
% 亮度变换
function pushbutton2_Callback(hObject, eventdata, handles)
global c;
prompt={'输入参数1[low_in high_in] ','输入参数2 [low_out high_out]','输入gamma'};
defans={'[0 0.7]','[0 1]','1'};
p=inputdlg(prompt,'输入参数',1,defans);
p1=str2num(p{1});
p2=str2num(p{2});
p3=str2num(p{3});
gamma=p3;
x=(c);
y=imadjust(x,p1,p2,gamma);
axes(handles.axes1);
imshow(y);
% 保存变换结果
function pushbutton11_Callback(hObject, eventdata, handles)
[filename,pathname] = uiputfile('*.jpg','图片保存为');
if isequal([filename,pathname],[0,0])
errordlg('没有保存','出错');
return;
else
file=strcat(pathname,filename);
(handles.axes1);
i=getimage(gca);
imwrite(i,file);
end
% 恢复原始图像
function pushbutton12_Callback(hObject, eventdata, handles)
global c;
imshow(c);
[1]林森, 陶志勇, 张沛泓,等. 数字图像处理GUI设计及在教学中的应用[J]. 科技与创新, 2018(3):3.
部分理论引用网络文献,若有侵权联系博主删除。