- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数字图像处理》
课程设计报告
题 目: 空间域图像增强
专 业: 信息与计算科学
一、课程设计目的
1、提高分析问题、解决问题的能力,进一步巩固数字图像处理系统中的基本原理和方法。
2、熟悉掌握一门计算机语言,可以进行数字图像的应用处理的开发设计。
3、充分利用所学数学方面的知识对问题进行深入分析。
二、课程设计基本要求
1、对知识点的掌握要求:
(1)深入理解空域图像增强方法的基本原理和基本的一些算法。
(2)掌握线性平滑滤波器和中值滤波器的设计。
(3)掌握拉普拉斯变换与梯度变换处理图像结果分析。
(4)利用MATLAB对图像进行各种处理,如:灰度切割,直方图的规定化和均衡化。
(5)学会MATLAB的使用,掌握MATLAB的程序设计方法。
2、分组情况
组长:
组员:情况::设计全过程的监督及协助、资料收集以及部分源程序代码的编写和整个源程序代码的整理。
:空域滤波增强中中值滤波器和锐化滤波器的设计。
:空域滤波增强中线性平滑滤波器的设计。:空域点处理增强中的直方图规定化方法的分析。
:空域点处理增强中的灰度变换方法的分析。
3、课程设计内容
通过空域方法提出图像增强的处理方法,理论原理结合实例对问题进行分析。
三、课程设计步骤
在空域图像处理方法中,根据每次处理时针对单个像素还是小的子图像块(模板)又可分为两种:一种是基于像素的图像增强,也叫点处理,这种增强过程中对每个像素的处理与其他像素无关;另一种是基于模板的图像增强,也叫空域滤波,这种增强过程中的每次处理操作都是基于图像中的某个小的区域。下面就这两种方法分别进行论述:
1、空域点处理增强
(1)基本灰度变换
A.图像求反:将原图像灰度值翻转,简单的说就是使黑变白,白变黑。
公式表示:灰度级范围[0,L-1]时,t=L-1-s;
255
255
用Matlab程序实现图像求反:
I=imread(‘123.tif’);
Imshow(I)
I=double(I)
I=256-1-I
I=unit8(I)
Figure
Imshow(I)
结果如下图:
(a)原图 (b)经处理后的图
结果分析:实现反白,适用于增强嵌入于图像暗色区域的白色或灰色细节。
B、对数变换:所显示的图像相对于原图像存在失真时,要消除这种因动态范围太大而引起的失真,一种有效的方法是对原图像的动态范围进行压缩,于是常借助于对数形式对动态范围进行调整。
公式表示:t=Clog(1+|s|),其中C为尺度比例常数,取值可结合原图像的动态范
围以及显示设备的显示能力来定。
图:对数变换函数示意图
用Matlab程序实现图像求反:
I=imread(‘123.tif’);
Figure;
Imshow(I);
I=double(I);
I2=41*log(1+I);
I2=unit8(I2);
Figure;
Imshow(I2);
结果如下图:
(a)原图 (b)经处理后的图
结果分析:扩展低输入,压缩高输入。当原图动态范围太大,超出显示设备的范围时,如直接显示原图则一部分细节可能丢失。此时采用对数变换,如傅里叶频谱的显示。
C、分段线性变换:将需要的图像细节灰度级拉伸,增强对比度,将不需要的图像细节灰度级压缩。
公式表示:
图(a)
图(b)
图(a)表示:ac,bd,从图中曲线可以看出通过这样一个变换,原图像中灰度值在0到a和b到L-Mf间的动态范围减少了,而原图像中灰度值在a和b间的动态范围增加了,从而增强了中间范围内的对比度。
图(b)表示:ac,bd,从图中曲线可以看出通过这样一个变换,原图像中灰度值在0到a和b到L-Mf间的动态范围增加了,而原图像中灰度值在a和b间的动态范围减少了,从而增强了中间范围内的对比度。
由此得出结论:
通过调整a,b,c,d可以控制分段直线的斜率,可对任一灰度区间进行扩展和压缩。
用Matlab程序实现图像的线性变换:
I=imread(‘2.tif’); %读入并显示原始图像
imshow(I);
I=double(I);
[M,N]=size (I);
for i = 1:M
for j = 1:N
if I(i,j)=30
I(i,j)= I(i,j);
elseif I(i,j)=150
I(i,j)=(200-300)/(150-30)*( I(i,j)-30)+30;
else
I(i,j)=(255-200)/(255-150)*( I(i,j)-150)+200;
end
end
end
figure(2);imshow(uin
文档评论(0)