2022年MATLAB课程设计--GUI图像处理.pdf
《2022年MATLAB课程设计--GUI图像处理.pdf》由会员分享,可在线阅读,更多相关《2022年MATLAB课程设计--GUI图像处理.pdf(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、MATLAB 课程设计 -GUI 图像处理目录1、设计目的3 2、题目分析3 3、总体设计3 4、具体设计55、结果分析346、心得体会347、附录代码361、设计目的 : 综合运用MATLAB 工具箱实现图像处理的GUI 程序设计 , 利用MATLAB 图像处理工具箱 , 设计与实现自己的Photoshop 。2、题目分析利用 matlab 的 GUI程序设计一个简单实用的图像处理程序。该程序应具备图像处理的常用功能 , 以满足用户的使用。现设计程序有以下基本功能: 1) 图像的读取与保存。2) 设计图形用户界面 , 让用户能够对图像进行任意的亮度与对比度变化调整, 显示与对比变换前后的图像
2、。3) 设计图形用户界面 , 让用户能够用鼠标选取图像感兴趣区域, 显示与保存该选择区域。4) 编写程序通过最近邻插值与双线性插值等算法将用户所选取的图像区域进行放大与缩小整数倍的操作, 并保存 , 比较几种插值的效果。5) 图像直方图统计与直方图均衡, 要求显示直方图统计, 比较直方图均衡后的效果。6) 能对图像加入各种噪声 , 并通过几种滤波算法实现去噪并显示结果。7) 额外功能。3、总体设计精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 44 页 - - - - - - - - - -
3、MATLAB 课程设计 -GUI 图像处理图一软件的总体设计界面布局如上图所示, 主要分为 2 个部分: 显示区域与操作区域。显示区域 : 显示载入原图 , 以及通过处理后的图像。操作区域 : 通过功能键实现对图像的各种处理。在截图中可见 , 左部为一系列功能按键如“还原” 、 “撤销” 、 “截图”等等 ; 界面正中部分为图片显示部分, 界面中下方为系列功能切换选择组。设计完成后运行的软件界面如下: 图二与图一先比 , 运行后的界面更为简洁。利用“编辑”菜单可调出相应的功能键。例如: 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - -
4、- - - - - - -第 2 页,共 44 页 - - - - - - - - - - MATLAB 课程设计 -GUI 图像处理4、具体设计现介绍各个功能模块的功能与实现。4、1 菜单栏的设计 。通过 Menu Editor创建如下菜单 , 通过以下菜单来控制显示或隐藏功能按键精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 44 页 - - - - - - - - - - MATLAB 课程设计 -GUI 图像处理以“编辑”菜单中“图像变形”中的“图像翻转”为例说明实现用户界面功能键“图
5、像翻转”的显示与隐藏。实现该功能的程序段如下: 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
6、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)利用“文件”菜单中的“打开” 、 “保存为”分别实现图片的读取与保存。精品资料 - - - 欢迎下载
7、 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 44 页 - - - - - - - - - - MATLAB 课程设计 -GUI 图像处理利用matlab 中 “ uigetfile”、“imread” “imshow”实现图像文件的读取与显示: function open(hObject, eventdata, handles) % hObject handle to openfile (see GCBO)% eventdata reserved - to be defined in a future version
8、of MATLAB% handles structure with handles and user data (see GUIDATA)=uigetfile(* 、jpg ; * 、bmp; * 、tif; * 、* , 载入图像 ); if isequal()|isequal(pathname,0) errordlg( 没有选中文件 , 出错 ); return ; else file=pathname,; global S % 设置一个全局变量 S,保存初始图像路径 , 以便之后的还原操作 S=file; x=imread(file); set(handles、axes1, Handle
9、Visibility, ON ); axes(handles、axes1); imshow(x); set(handles、axes1, HandleVisibility, OFF ); axes(handles、axes2); imshow(x); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 44 页 - - - - - - - - - - MATLAB 课程设计 -GUI 图像处理 handles、img=x; guidata(hObject,handles); end 程序关键部分
10、: 通过=uigetfile(* 、jpg ; * 、bmp; * 、tif; * 、* , 载入图像 ) 选择相应路径打开的图像 ; 通过file=pathname,; x=imread(file); 读取选中的图像; 最后, 通过imshow(x) 在显示区域上显示图像。(2) 图像保存。利用“ uiputfile”、“ imwrite ”函数实现图像文件的保存。function save_Callback(hObject, eventdata, handles) % hObject handle to save (see GCBO)% eventdata reserved - to be
11、 defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) s ,s=uiputfile(* 、jpg ; * 、bmp; * 、tif; * 、* , 保存图像文件 , untitled、jpg ); if isequal(s,0,0) ss ,s; imwrite(handles、img,s); else msgbox( 您按了取消键 , 保存失败 ); end 程序关键部分 : 精品资料 - - - 欢迎下载 - - - - - - - - - - -
12、 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 44 页 - - - - - - - - - - MATLAB 课程设计 -GUI 图像处理通s ,s=uiputfile(* 、jpg ; * 、bmp; * 、tif; * 、* , 保存图像文件 , untitled、jpg ) 选择图像文件保存的路径与格式; 然后, 通过ss ,s; imwrite(handles、img,s); 实现对图像的保存。(3) 程序的退出。function exit_Callback(hObject, eventdata, handles) % hObject handle to
13、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; 4、3对图像进行任意的亮度与对比度变化调整, 显示与对比变换前后的图像。运行程序后 , 通过“编辑”菜单中的“常用处理”选中“亮度调节”在显示出相应的功能键后, 通过载入读取图像 , 比并进行处理 , 效果如下 : 亮度处理前 : 精品资料 -
14、- - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 44 页 - - - - - - - - - - MATLAB 课程设计 -GUI 图像处理亮度处理后 : 实现程序段如下 : % - Executes on button press in radiobutton12、function radiobutton12_Callback(hObject, eventdata, handles) % hObject handle to radiobutton12 (see GCBO)% eventdata reser
15、ved - 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 radiobutton12global T axes(handles 、axes2); T=getimage; prompt= 调整倍数 ; defans= 1 ; p=inputdlg(prompt,input,1,defans); p1=str2num(p1); 精品资料 -
16、 - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 44 页 - - - - - - - - - - MATLAB 课程设计 -GUI 图像处理 y=imadjust(handles、img, , ,p1); % 亮度调节 imshow(y); handles 、img=y; guidata(hObject,handles); 对比度处理前 : 对比度处理后 ( 增强 3 倍): 对比度减弱 1、5 倍后: 实现程序段如下 : function uipanel10_SelectionChangeFcn(hOb
17、ject, eventdata, handles) % hObject handle to uipanel10 (see GCBO)精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 44 页 - - - - - - - - - - MATLAB 课程设计 -GUI 图像处理% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data
18、(see GUIDATA)global T str=get(hObject,string); axes(handles 、axes2); switch str case 增强 T=getimage; prompt= 输入参数 : ; defans=1 ; p=inputdlg(prompt,input,1,defans); p1=str2num(p1); f=immultiply(handles、img,p1); imshow(f); handles、img=f; guidata(hObject,handles); case 减弱 T=getimage; prompt= 输入参数 : ; de
19、fans=1 ; p=inputdlg(prompt,input,1,defans); p1=str2num(p1); f=imdivide(handles、img,p1); imshow(f); handles、img=f; guidata(hObject,handles); end 该程序段主要通过 f=immultiply(handles、img,p1); p=inputdlg(prompt,input,1,defans); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 44 页 -
20、 - - - - - - - - - MATLAB 课程设计 -GUI 图像处理分别实现图像对比度的增强与减弱。 4.4 用鼠标选取图像感兴趣区域, 显示与保存该选择区域 。通过imcrop(x) 函数来实现对图片某一区域的截取, 截取的图片在右框中显示。结合“保存为” , 可把截图处理后的图片保存在指定路径。实现程序段如下 : % - Executes on button press in pushbutton1、function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1
21、 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global T axes(handles 、axes2); T=getimage; x=imcrop(handles 、img); % 截图imshow(x); handles 、img=x; guidata(hObject,handles); 4、5 图像转化为灰度图像。由于在 matlab 中较多的图像处理函数支持对灰
22、度图像进行处理, 故对图像进行灰度转化十分必要。可利用rgb2gray(X) 函数对其她图像进行灰度图像的转化。转化实例如下 : 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 44 页 - - - - - - - - - - MATLAB 课程设计 -GUI 图像处理实现程序段如下 : % - Executes on button press in radiobutton16、function radiobutton16_Callback(hObject, eventdata, handl
23、es) % hObject handle to radiobutton16 (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 radiobutton16global T axes(handles 、axes2); T=getimage; x=rgb2gray(handles、
24、img); %RGB?a?a?imshow(x); handles 、img=x; guidata(hObject,handles); 4、6对图像进行放大与缩小整数倍的操作。通过imresize(X,n,mode)函数对图像 X进行放大或者缩小。 N 放大缩小倍数 ,mode为采用的方式。通过处理后可发现保存的图片的比原图放大了(缩小了 ) 。实现的程序段如下 : function uipanel9_SelectionChangeFcn(hObject, eventdata, handles) % hObject handle to uipanel9 (see GCBO)% eventdat
25、a reserved - to be defined in a future version of MATLAB精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 44 页 - - - - - - - - - - MATLAB 课程设计 -GUI 图像处理% handles structure with handles and user data (see GUIDATA)global T str=get(hObject,string); axes(handles 、axes2); switch
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 MATLAB 课程设计 GUI 图像 处理
限制150内