图像处理课程报告(金佳琪1115101021)
- 格式:doc
- 大小:4.44 MB
- 文档页数:22
《 图像处理》 课程报告 题 目: 图像的增强 院(系) 信息科学与工程学院 专 业 通信工程 届 别 2011级 班 级 通信工程A班 学 号 1115102021 姓 名 金佳琪 任课老师 冯桂 摘要 本文以MATLAB软件的图形用户界面(GUI)开发环境和图像处理工具箱为平台设计了数字图像综合处理系统,通过编写不同的按钮代码,实现数字图像的空域、频域、锐化、平滑等简易的图像增强处理功能。加强图像的有用信息,使图像更加美观,操作简单且美观。 在MATLAB中,GUI[1]是一个包含多种对象的图形窗口,并为GUI开发提供一个方便高效的集成开发环境GUIDE。GUIDE主要是一个界面设计工具集,MATLAB将所有GUI支持的控件都集成在这个环境中,并提供界面外观、属性和行为响应方式的设置方法。GUIDE将设计好的GUI保存在一个FIG文件中,同时还生成M文件框架。其中FIG文件包括GUI图形窗口及其所有FIG文件包含序列化的图形窗口对象;M文件包括GUI设计、控制函数以及定义为子函数的用户控件回调函数。 GUI创建包括界面设计和控件编程两部分,主要步骤如下:通过设置GUIDE应用程序的选项来运行GUIDE;使用界面设计编辑器进行界面设计;编写控件行为响应控制(即回调函数)代码。在MATLAB中,GUIDE提供多个模板来定制GUI。这些模板均已包括相关的回调函数,可以通过修改相应的M文件函数实现指定功能。
关键词: MATLAB 数字图像处理 GUI 目录 一 课程设计简介.................................................... 4 1. 实现功能.................................................... 4 2 . 设计思路.................................................... 4 (1)GUI交互设计 ............................................ 4 (2)GUI设计效果 ............................................ 5 二 图像处理功能的实现与测试........................................ 6 1. 变换处理 ................................................... 6 2. 噪声处理 .................................................. 12 3. 滤波处理 .................................................. 15 三 总结与反思..................................................... 19 四 参考文献....................................................... 19 五 附录 一 课程设计简介 1. 实现功能 使用Matlab GUI所提供的图形界面制作方法,以及《图像处理》课程中学到的图像增强相关知识。查阅或自编相关算法,使用GUI界面制作一个简单的图像处理软件,实现图像的空域、频域、锐化、平滑等简易的图像增强处理功能。加强图像的有用信息,使图像更加美观。同时进一步熟悉MatlabGUI的制作,图像处理的有关函数和算法的使用。
2. 设计思路 (1)GUI交互设计
文件 打开 保存 退出
编辑 撤销 恢复 还原
图像处理 变换处理
灰度变换 亮度 对比度 旋转
加入噪声
椒盐噪声
高斯噪声 乘性噪声
滤波处理 空域滤波 平滑 线性平滑 非线性平滑
锐化 线性锐化 拉普拉斯算子锐化 梯度锐化
频域滤波 低通滤波 高通滤波 (2)GUI设计效果 总体设计界面 总体界面使用简单的快捷按钮键实现简单的图像增强处理功能,原始图像与处理效果图像分别位于界面的左右,右侧有14个功能处理按钮,上方有文件按钮与编辑按钮。
GUI主菜单结构图 菜单结构采用普通软件的菜单模板,文件,编辑,以及图像处理功能,简单明了。 二 图像处理功能的实现与测试 1. 变换处理
(1) 灰度变换 利用rgb2gray(X)函数对其他图像进行灰度图像的转换。 程序如下: function huidu_Callback(hObject, eventdata, handles) global T axes(handles.axes2); T=getimage; x=rgb2gray(handles.img); imshow(x); handles.img=x; guidata(hObject,handles);
测试结果如下:
(2) 亮度调节 程序如下: function liangdu_Callback(hObject, eventdata, handles) global T axes(handles.axes2); T=getimage; prompt={'亮度调整倍数'}; defans={'2'}; %默认调整倍数为2 p=inputdlg(prompt,'input',1,defans); 9 / 50 p1=str2num(p{1}); y=imadjust(handles.img,[ ], [ ],p1); %亮度调节 imshow(y); handles.img=y; guidata(hObject,handles);
测试结果如下(亮度倍数为0.5):
(3) 对比度 程序如下:
unction duibidu_Callback(hObject, eventdata, handles) global T axes(handles.axes2); T=getimage; prompt={'输入参数:'}; defans={'2'}; %默认调整倍数为2 p=inputdlg(prompt,'input',1,defans); p1=str2num(p{1}); f=immultiply(handles.img,p1); imshow(f); handles.img=f; 测试结果如下(参数为2): (4) 旋转图片 程序如下: function xuanzhuan_Callback(hObject, eventdata, handles) global T axes(handles.axes2); T=getimage; prompt={'输入旋转角度:'}; defans={'0'}; p=inputdlg(prompt,'input',1,defans); p1=str2num(p{1}); f=imrotate(handles.img,p1,'bilinear','crop'); imshow(f); handles.img=f; guidata(hObject,handles);
测试结果(旋转90度): 2.加入噪声 (1)椒盐噪声 程序如下: function jiaoyan_Callback(hObject, eventdata, handles) global T axes(handles.axes2); T=getimage; prompt={'输入椒盐噪声参数:'}; defans={'0.02'}; p=inputdlg(prompt,'input',1,defans); p1=str2num(p{1}); f=imnoise(handles.img,'salt & pepper',p1); imshow(f); handles.img=f; guidata(hObject,handles);
测试结果如下(参数为0.02): (2)高斯噪声 程序如下: function gaosi_Callback(hObject, eventdata, handles) global T axes(handles.axes2); T=getimage; prompt={'输入高斯噪声1:','输入高斯噪声2'}; defans={'0','0.02'}; p=inputdlg(prompt,'input',1,defans); p1=str2num(p{1}); p2=str2num(p{2}); f=imnoise(handles.img,'gaussian',p1,p2); imshow(f); handles.img=f; guidata(hObject,handles);
测试结果(参数为0,0.02) (3)乘性噪声 程序如下: function chengxing_Callback(hObject, eventdata, handles) global T axes(handles.axes2); T=getimage; T=getimage; prompt={'输入乘性噪声系数:'}; defans={'0.02'}; p=inputdlg(prompt,'input',1,defans); p1=str2num(p{1}); f=imnoise(handles.img,'speckle',p1); imshow(f); handles.img=f; guidata(hObject,handles);
测试结果(参数为0.02):