《数字图像处理》课程设计报告
--------题目1:图像基本处理系统
学院: 计算机科学与技术学院
班级:
学号
2012-2013年第2学期第20周题目
1. 设计目的、内容及要求
通过本课程设计使学生了解数字图像的基本概念,掌握数字图像处理的基本内容,如图像点运算、几何变换、增强处理、图像复原、边缘检测以及图像压缩等的基本原理和Matlab实现方法。
通过本次课程设计,让学生掌握如何学习一门语言,如何进行资料查阅搜集,如何自己解决问题等方法,养成良好的学习习惯。扩展理论知识,培养学生的综合设计能力。掌握MATLAB中GUI设计的基本操作方法,
这部分主要说明本课程设计的目的、任务和要求;
功能要求:
1. 能对图像文件(bmp、 jpg、 tiff、 gif等)进行打开、保存、退出等功能操作;
2. 包含功能
基本功能:彩色图像转灰度图像
图像的几何空间变换:平移,旋转,剪切,缩放
图像的灰度拉伸方法;
直方图的统计和绘制;直方图均衡化和规定化;
图像的频域变换:傅立叶变换和离散余弦变换及其反变换
程序测试部分
可视化界面,采用多幅不同形式图像验证系统的正确性;
设计测试方案验证各功能模块算法的性能;
对图像进行灰度级映射,对比分析变换前后的直方图变化;
设计测试方案验证傅立叶变换的特点
2. 涉及方法的原理介绍
基本功能:彩色图像转灰度图像
图像的几何空间变换:平移,旋转,剪切,缩放
图像的灰度拉伸方法;
直方图的统计和绘制;直方图均衡化和规定化;
图像的频域变换:傅立叶变换和离散余弦变换及其反变换
图像的去噪处理:中值滤波器是最常用的非线性平滑滤波器。它是一种临域运算,类似于卷积,但计算的不是加权求和,而是把邻域中的像素按灰度级进行排序,然后选择改组的中间值作为输出的像素值。具体步骤:
(1)将模板在图像中漫游,并将模板中心和图像某个像素的位置重合;
(2)读取模板下对应像素的灰度值;
(3)将这些灰度值从小到大排成一列;
(4)找出这些值排在中间的一个;
(5)将这个中间值赋给对应模板中心位置的像素。
根据指导书和教材的讲述,介绍系统中所设计的主要功能和原理方法 ;
3. 总体方案设计
3.1 系统方案设计
1、功能模块
(1)实现图像文件(bmp、 jpg、 tiff、 gif等)进行打开、保存、退出、还原、撤销功能;
(2)实现彩色图像转灰度图像;
(3)图像的几何空间变换:平移,旋转,剪切,缩放;
(4)图像的增强处理模块:实现图像的灰度拉伸包括负线性拉伸和指数拉伸、直方图均衡化和图像直方图统计
(5)图像的加噪与去噪处理
(6)实现图像的双线性插值和最近邻域插值
(7)实现图像的边缘检测功能
2、系统运行的环境
Windows xp
Matlab 7
3、GUI界面设计方案
(1)利用GUIDE进行菜单的设计与制作,根据需要建立了文件、编辑、彩色图到灰度图的转换、频域变换和图像增强处理五个主菜单以及14个相应的子菜单;
(2)控制框对象的设计和布局,与菜单相同,控制框也是实现用户与计算机交互的一种对象,通过GUIDE的建立方式设计控制框
(3)代码的设计,主要是对各控制对象的回调函数设计
4、具体介绍
【1】菜单栏的设计:通过Menu Editor创建如下菜单,通过以下菜单来控制显示或隐藏功能按键
【2】图像的读取和保存:利用“文件”菜单中的“打开”、“保存”和“退出”分别实现图片的读取、保存。
根据课程设计的具体情况,描述系统的具体构架,包括:功能模块的划分、系统运行的环境、GUI界面设计方案、选用的工具及主要实现功能的原理。(尽量给出系统框架图、算法流程图);
利用弹出框的形式实现图像的几何变换
利用复选框的形式实现图像的加噪和去噪处理
利用普通按钮实现图像插值以及边缘检测
3.2 小组成员及具体分工
资料的搜集涉及方法的原理主要由崔振华同学负责,系统的具体框架及各个功能模块的主要函数实现主要由何珍珍同学负责;程序的测试和调试及设计的任务和要求主要韩皎同学负责,方案设计和GUI界面总体布局设计以及报告的最终稿由小组成员共同讨论合作完成,小组成员取长补短,团结协作按时完成各分工任务。
4. 程序实现和测试
4.1各个功能模块的主要函数实现
(1)使用IPT中imhist,histeq函数进行直方图的均衡化 ,
function zhuanghuan_Callback(hObject, eventdata, handles)
% hObject handle to zhuanghuan (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
对函数要进行说明,包括其功能、用法,使用范围,及参数设置等。(不用粘贴函数内部的具体代码)
function zhuanghuan_Callback(hObject, eventdata, handles)
% hObject handle to zhuanghuan (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
function save_Callback(hObject, eventdata, handles)
% hObject handle to save (see GCBO)
% eventdata reserved - 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
msgbox('保存失败');
end
(3)程序的退出。
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;
给出主要函数的调用关系;
4.2测试和调试
1、测试方案设计:按照课程设计的要求分别设计测试方案
2、测试结果:按照测试要求选用多幅图像对程序进行测试,并提供系统的主要功能实现的效果图。
3、问题说明和总结:对在调试中发现的问题和解决方法做说明。
5. 课程设计总结与体会
通过这次的课程设计,通过编写代码来完成对图像的处理,这是一份难得的经验。由于对MATLAB的GUI设计不熟悉导致对数字图像处理过程中对其操作可以说是非常的不熟练,特别是对句柄函数的调用刚开始不知道对应代码应该写在哪块,最后通过小组成员共同讨论研究才做出来,通过查阅资料开始慢慢的对MATLAB的操作熟练起来,。平时上课的时候只是对老师讲的图像处理的动手环节比较感兴趣,对其原理和基础知识有点不感兴趣,甚至可以说完全不明白。但是,通过向同学请教,上网查资料以及在调试代码和运用HELP中使得我们对GUI设计以及数字图像的基本处理有了进一步的了解,此外在实践中找到了学习的乐趣并且感受到了团队合作的重要性。
参考文献:
[1]杨帆.数字图像处理与分析[M].北京:北京航天航空大学出版社,2007.
[2]王爱玲,叶明生,邓秋香.MATLAB 7.0在图像处理中的应用[M].北京:机械工业出版社,2007.
[3]杨杰.数字图像处理及MATLAB实现[M].北京:电子工业出版社,2010.
[4]徐飞,失晓红.MATLAB应用图像处理[M].西安电子科技大学出版社,2002.
[5]http://wenku.baidu.com/view/6aa33fed0975f46527d3e13d.html
[6]http://wenku.baidu.com/view/c4ad49d426fff705cc170a91.html
本文来源:https://www.2haoxitong.net/k/doc/30105c3779563c1ec5da71ec.html
文档为doc格式