5、结果分析
软件测试基本成功,课题所要求的功能均能较好实现。但一些功能只支持灰度图像的处理。
其中值得一提的是在滤波处理中的低通滤波与高通滤波的效果。由于一般图像中含有较多的低频信息成分高频成分较少,通过低通滤波后,噪声以及高频成分被滤除,图像虽有少量失真,略显模糊,但尚可辨识。但若是通过高通滤波后,大量的有效低频信息被滤除,图像严重失真,不可辨识。
6、心得体会
通过为期两周的matlab课程设计实践,使我对matlab的使用有了进一步的了解和熟悉。
当我第一次拿到此次的课题时,感到有些无所适从。虽然,曾经学习过matlab的课程,在课程的考核中也取得了较好的成绩,但由于对matlab的学习更多的只是停留在理论上的学习,在课时内的试验也只是简单的基础性试验, 所以对matlab实际运用不是很熟练。
虽然对课题感到很懵懂,但在郑老师的简单提示与指导后,我开始找到了解决问题的路径。我选择的是“利用matlab的GUI程序设计一个简单实用的图像处理程序”这一课题。本课题的重点是句柄的使用、GUI的使用以及matlab中相关图像处理函数使用。
为此,在实践正式开始前,我利用课余时间,重新复习了matlab教材,专门借阅了利用matlab进行图像处理的相关教程,通过索引网络上的相关资料,为课设做了较为充分的准备。在参考了相关材料及源程序,我对自己要做的课设内容有了进一步的了解,并对matlab的使用有了更深的体会。
当然,在课设的进行过程中,我还是遇到了不少问题。例如,起初由于我对句柄使用以及一些函数使用的不恰当,使得在对图像文件的保存上就遇到了问题,不过最后还是在老师的提示下解决了。随着课设的进行,对matlab的的熟悉度逐步加深。在基本功不断扎实的基础上,我开始进行一些扩张功能的尝试,比如还原操作、对功能键实现显示和隐藏的功能、实现撤销多次前操作等 。其
33 / 52
中前两个较为成功的完成,但在第三个功能上出现了些问题,由于对matlab中数组结构体与循环套用使用的不当,到实践结束之际也未实现所犯的错误,只能退而求次,实现执行撤销功能(恢复到上次操作),不能不说不是一个遗憾?? 但是,总体来说,此次的课程设计,还是较为满意的。它不但鞭策着我去巩固matlab的基础理论知识,还提高了我对matlab的实际操作运用,使得理论与实践相结合,为进一步学习matlab打下坚实的基础;同时,在实践的工程中,也让我体会到一种努力付出并得到回报的满足感觉。
参考书目:(五号,宋体加粗)
[1] 《MATLAB实用教程》 郑阿奇 电子工业出版社
[2] 《MATLAB仿真在信号处理中的应用》 徐明远 刘增力 西安电子科技大学出版社
34 / 52
附录:(五号,宋体加粗)
function varargout = tuxiangchuli(varargin) % TUXIANGCHULI M-file for tuxiangchuli.fig
% TUXIANGCHULI, by itself, creates a new TUXIANGCHULI or raises the existing % singleton*. %
% H = TUXIANGCHULI returns the handle to a new TUXIANGCHULI or the handle to % the existing singleton*. %
% TUXIANGCHULI('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in TUXIANGCHULI.M with the given input arguments. %
% TUXIANGCHULI('Property','Value',...) creates a new TUXIANGCHULI or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before tuxiangchuli_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to tuxiangchuli_OpeningFcn via varargin. %
% *See GUI Options on GUIDE's Tools menu. Choose \ % instance to run (singleton)\ %
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help tuxiangchuli
% Last Modified by GUIDE v2.5 14-Mar-2009 21:34:50
% Begin initialization code - DO NOT EDIT gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @tuxiangchuli_OpeningFcn, ... 'gui_OutputFcn', @tuxiangchuli_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
% End initialization code - DO NOT EDIT
35 / 52
% --- Executes just before tuxiangchuli is made visible.
function tuxiangchuli_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to tuxiangchuli (see VARARGIN)
% Choose default command line output for tuxiangchuli handles.output = hObject;
% Update handles structure guidata(hObject, handles);
% UIWAIT makes tuxiangchuli wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = tuxiangchuli_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure varargout{1} = handles.output;
% -------------------------------------------------------------------- function file_Callback(hObject, eventdata, handles) % hObject handle to file (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% -------------------------------------------------------------------- function exit_Callback(hObject, eventdata, handles) % hObject handle to exit (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) clc;
close all; close(gcf); clear;
36 / 52