数字图像处理课程设计实验报告
- 格式:doc
- 大小:2.06 MB
- 文档页数:15
江南大学《数字图像处理技术》课程设计报告
设计题目:数字图像处理系统
班级:数字媒体班
姓名:
学号:
指导老师:
日期:2013.7.2
一、课程设计目的要求:
1、提高分析图像处理问题的能力,进一步巩固在《数字图像处理技术》课程中所学的基本原理与方法。
2、掌握并使用一门计算机语言,进行数字图像处理的应用设计。
二、设计的内容:
根据本次课设完成的系统的主要功能如下:利用matlab的GUI 程序设计一个简单的图像处理程序,含有如下基本功能:
1、图像的读取、存储、剪切和粘贴
2、图像转化为灰度图像
3、图像大小的计算
4、直方图均衡化规定化的计算
5、图像求反、动态压缩
6、直接灰度调整
7、空域滤波(均值、中值、对比度增强滤波)
8、非线性锐化滤波(log滤波、prewitt滤波、sobel卷积、sobel滤波)
9、频域增强(高通、低通滤波)
三、总体方案设计:
(1)、软件的总体设计界面布局如下图:
系统的总体设计界面主要分为2个区域:显示区域和操作区域。
显示区域:在原始图像的基础上显示效果图。
操作区域:通过功能菜单实现图像的各种处理。
设计完成后运行的软件界面如下:
(2)、功能模块的划分:
1、图像的读取、存储、退出
2、编辑(还原、剪切、粘贴)
3、图像(图像大小的计算、旋转、直方图均衡化规定化的计算、图像求反、动态压缩)
4、滤波(直接灰度调整、空域滤波、非线性锐化滤波、频域增强)(3)、系统运行环境:
Windows 7 or SP1、Windows Vista SP2、Windows XP SP3、Windows XP x64 Edition SP2、Windows Server 2008 SP2 or R2、Windows Server 2003 R2 ,CPU要求:X86架构且支持SSE2指令集,硬盘空间:典型安装需要3-4G,内存:最低1G,推荐2G。
(4)、选用的工具:matlab7.0,win7X64
(5)、主要实现功能的原理:
直方图均衡化方法的基本思想是,对在图像中像素个数多的灰度级进行展宽,而对像素个数少的灰度级进行缩减。从而达到清晰图像的目的。空域是指图像平面本身,空域滤波这类方法直接对图像的像素进行处理。采用低通滤波(即只让低频信号通过)法,可去掉图中的噪声;采用高通滤波法,则可增强边缘等高频信号,使模糊的图片变得清晰。
四、各个功能模块的主要实现程序:
各个功能模块的具体实现,主要步骤实现的效果图如下:
1、图像另存为:
function tp_saveAs_Callback(hObject, eventdata, handles) global tpdata tp;
[FileName,PathName]=uiputfile({'*.jpg;*.tif;*.png;*.gif'; '*.*';'All Files' },'保存图像',tp);
if FileName==0
return;
else
tp=[PathName,FileName];
imwrite(tpdata,tp);
End
2、灰度调整:
function tp_filter_grayhound_Callback(hObject, eventdata, handles)
global tpdata;
I=tpdata;
prompt={'请输入两个0—1之间的数'};
dlgtitle = '输入';
num_lines = 1;
def = { '0.3 0.7'};
answer = inputdlg(prompt,dlgtitle,num_lines,def);
answer =char(answer);
answer=str2num(answer);
if
(answer(1)>0&answer(1)<1)&(answer(2)>0&answer(2)<1)
tpdata=imadjust(I,[answer(1) answer(2)],[]);
imshow(tpdata)
else
warndlg('输入错误!!!');
End
3、计算图像大小:
function tp_size_Callback(hObject, eventdata, handles) global tpdata;
[x,y]=size(tpdata);
msgbox( num2str([ x y ]) ,' 图片大小 ');
4、菜单中图片旋转:
function tp_rotate_Callback(hObject, eventdata, handles) global tpdata;
prompt={'+:为逆时针 -:为顺时针'};
dlgtitle = '输入角度';
num_lines = 1;
def = { '90'};
answer = inputdlg(prompt,dlgtitle,num_lines,def);
answer =char(answer);
answer=str2num(answer);
if answer>-360&answer<360
tpdata=imrotate(tpdata,answer,'bicubic');
imshow(tpdata);
End
直方图计算:
function tp_squarejs_Callback(hObject, eventdata, handles) global tpdata;
imhist(tpdata,64);
5、直方图均值计算:
function tp_squareMeanjs_Callback(hObject, eventdata,