MATLAB与GUI图像处理教案资料.doc
《MATLAB与GUI图像处理教案资料.doc》由会员分享,可在线阅读,更多相关《MATLAB与GUI图像处理教案资料.doc(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流MATLAB与GUI图像处理【精品文档】第 35 页 MATLAB 实践 课程设计学生姓名: # 学 号: # 专业班级: # 指导教师: # 二一一年 3月 6 日目 录1.设计目的32.题目分析33.总体设计34.具体设计55.结果分析346.心得体会347.附录代码361、设计目的:综合运用MATLAB工具箱实现图像处理的GUI程序设计, 利用MATLAB图像处理工具箱,设计和实现自己的Photoshop 。2、题目分析 利用matlab的GUI程序设计一个简单实用的图像处理程序。该程序应具备图像处理的常用功能,以满足用户的使用。现设计程序有以下基
2、本功能:1)图像的读取和保存。2)设计图形用户界面,让用户能够对图像进行任意的亮度和对比度变化调整,显示和对比变换前后的图像。3)设计图形用户界面,让用户能够用鼠标选取图像感兴趣区域,显示和保存该选择区域。4)编写程序通过最近邻插值和双线性插值等算法将用户所选取的图像区域进行放大和缩小整数倍的操作,并保存,比较几种插值的效果。5)图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果。6)能对图像加入各种噪声,并通过几种滤波算法实现去噪并显示结果。7)额外功能。3、总体设计 图一软件的总体设计界面布局如上图所示,主要分为2个部分:显示区域与操作区域。显示区域:显示载入原图,以及
3、通过处理后的图像。操作区域:通过功能键实现对图像的各种处理。在截图中可见,左部为一系列功能按键如“还原”、“撤销”、“截图”等等 ;界面正中部分为图片显示部分,界面中下方为系列功能切换选择组。设计完成后运行的软件界面如下: 图二 与图一先比,运行后的界面更为简洁。利用“编辑”菜单可调出相应的功能键。例如:4、具体设计现介绍各个功能模块的功能与实现。4.1菜单栏的设计。通过Menu Editor创建如下菜单,通过以下菜单来控制显示或隐藏功能按键以“编辑”菜单中“图像变形”中的“图像翻转”为例说明实现用户界面功能键“图像翻转”的显示与隐藏。实现该功能的程序段如下:function tuxiangf
4、anzhuan_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.uipan
5、el7,Visible,on); set(gcbo, Checked, off); set(handles.uipanel7,Visible,off);else set(gcbo, Checked, on);end该段程序通过设置“图像翻转”功能键对应的句柄uipanel7中的“Visible”属性的开关来实现该功能键的显示隐藏。其他同理。4.2图像的读取和保存。 (1)利用“文件”菜单中的“打开”、“保存为”分别实现图片的读取与保存。利用matlab中 “ uigetfile”、“imread” “imshow”实现图像文件的读取与显示:function openfile_Callback(
6、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
7、(没有选中文件,出错); return;else file=pathname,filename; global S %设置一个全局变量S,保存初始图像路径,以便之后的还原操作 S=file; 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
8、程序关键部分: 通过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)% eventdata reserve
9、d - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) sfilename ,sfilepath=uiputfile(*.jpg;*.bmp;*.tif;*.*,保存图像文件,untitled.jpg); if isequal(sfilename,sfilepath,0,0) sfilefullname=sfilepath ,sfilename; imwrite(handles.img,sfilefullname); else msgb
10、ox(你按了取消键,保存失败); end程序关键部分:通sfilename ,sfilepath=uiputfile(*.jpg;*.bmp;*.tif;*.*,保存图像文件,untitled.jpg)选择图像文件保存的路径与格式;然后,通过sfilefullname=sfilepath ,sfilename;imwrite(handles.img,sfilefullname); 实现对图像的保存。(3)程序的退出。 function exit_Callback(hObject, eventdata, handles)% hObject handle to exit (see GCBO)% e
11、ventdata 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;4.3对图像进行任意的亮度和对比度变化调整,显示和对比变换前后的图像。 运行程序后,通过“编辑”菜单中的“常用处理”选中“亮度调节”在显示出相应的功能键后,通过载入读取图像,比并进行处理,效果如下:亮度处理前: 亮度处理后:实现程序段如下:% - Executes on button pre
12、ss in radiobutton12.function radiobutton12_Callback(hObject, eventdata, handles)% hObject handle to radiobutton12 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hint: get(hObject,Value) returns toggle state of
13、 radiobutton12global Taxes(handles.axes2);T=getimage; prompt=调整倍数; defans=1; p=inputdlg(prompt,input,1,defans); p1=str2num(p1); y=imadjust(handles.img, , ,p1); %亮度调节 imshow(y); handles.img=y; guidata(hObject,handles);对比度处理前:对比度处理后(增强3倍):对比度减弱1.5倍后:实现程序段如下:function uipanel10_SelectionChangeFcn(hObjec
14、t, eventdata, handles)% hObject handle to uipanel10 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global Tstr=get(hObject,string);axes(handles.axes2);switch str case增强 T=getimage; prompt=输入参数:; defans=1; p=inpu
15、tdlg(prompt,input,1,defans); p1=str2num(p1); f=immultiply(handles.img,p1); imshow(f); handles.img=f; guidata(hObject,handles); case减弱 T=getimage; prompt=输入参数:; defans=1; p=inputdlg(prompt,input,1,defans); p1=str2num(p1); f=imdivide(handles.img,p1); imshow(f); handles.img=f; guidata(hObject,handles);
16、end 该程序段主要通过 f=immultiply(handles.img,p1); p=inputdlg(prompt,input,1,defans);分别实现图像对比度的增强与减弱。 44 用鼠标选取图像感兴趣区域,显示和保存该选择区域。 通过imcrop(x)函数来实现对图片某一区域的截取,截取的图片在右框中显示。结合“保存为”,可把截图处理后的图片保存在指定路径。实现程序段如下:% - Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)% h
17、Object handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global Taxes(handles.axes2);T=getimage;x=imcrop(handles.img); %截图imshow(x);handles.img=x;guidata(hObject,handles);4.5 图像转化为灰度图像。由于在matl
18、ab中较多的图像处理函数支持对灰度图像进行处理,故对图像进行灰度转化十分必要。可利用rgb2gray(X)函数对其他图像进行灰度图像的转化。转化实例如下:实现程序段如下:% - Executes on button press in radiobutton16.function radiobutton16_Callback(hObject, eventdata, handles)% hObject handle to radiobutton16 (see GCBO)% eventdata reserved - to be defined in a future version of MATLA
19、B% handles structure with handles and user data (see GUIDATA)% Hint: get(hObject,Value) returns toggle state of radiobutton16 global Taxes(handles.axes2);T=getimage;x=rgb2gray(handles.img); %RGBimshow(x);handles.img=x;guidata(hObject,handles);4.6对图像进行放大和缩小整数倍的操作。通过imresize(X,n,mode)函数对图像X进行放大或者缩小。N放
20、大缩小倍数,mode为采用的方式。 通过处理后可发现保存的图片的比原图放大了(缩小了)。实现的程序段如下:function uipanel9_SelectionChangeFcn(hObject, eventdata, handles)% hObject handle to uipanel9 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global Tstr=get(h
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB GUI 图像 处理 教案 资料
限制150内