电子科技大学-数字图像处理-课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子科技大学
数字图像处理课程设计
课题名称数字图像处理
院(系)通信与信息工程学院
专业通信工程
姓名
学号
起讫日期
指导教师
2015年12月15日
目录
摘要: (03)
课题一:图像的灰度级分辨率调整
(04)
课题二:噪声的叠加与频域低通滤波器应用
(06)
课题三:顶帽变换在图像阴影校正方面的应用
(13)
课题四:利用Hough变换检测图像中的直线
(15)
课题五:图像的阈值分割操作及区域属性
(20)
课题六:基于MATLAB®的GUI程序设计
(23)
结束语: (36)
参考文献: (37)
基于MATLAB®的数字图像处理课题设计
摘要
本文首先对数字图像处理的相关定义、概念、算法与常用变换进行了介绍;并通过七个课题实例,借助MATLAB®的图像处理工具箱(Computer Vision System Toolbox)对这些案例逐一实现,包括图像的灰度值调整、图像噪声的叠加、频域低通滤波器、阈值分割、Hough变换等,常用的图像变化与处理;然后通过MATLAB®的GUI程序设计,对部分功能进行模块化整合,设计出了数字图像处理的简易软件;最后给出了软件的帮助文件以及该简易程序的系统结构和m代码。
关键词:灰度值调整噪声图像变换MATLAB® GUI设计
课题一:图像的灰度级分辨率调整
设计要求:
128,64,32,16,8,4,2,并在同一个figure窗口将图像的灰度级分辨率调整至{}
上将它们显示出来。
设计思路:
灰度级分辨率又称色阶,是指图像中可分辨的灰度级的数目,它与存储灰度级别所使用的数据类型有关。由于灰度级度量的是投射到传感器上的光辐射值的强度,所以灰度级分辨率又称为辐射计量分辨率。随着图像灰度级分辨率的的逐渐降低,图像中所包含的颜色数目将变得越来越少,从而在颜色维度造成图像信息量的退化。
MATLAB®提供了histeq函数用于图像灰度值的改变,调用格式如下:
J = histeq(I,n)
其中J为变换后的图像,I为输入图像,n为变换的灰度值。依次改变n的值为128、64、32、16、8、4、2 就可以得到灰度值分辨率为128、64、32、16、8、4、2的输出图像。利用MATLAB®的subplot命令可以将不同灰度的图像放在同一个figure中方便对比。
课题实现:
该思路的MATLAB®源代码如下:
in_photo=imread('lena.bmp');
%读入图片“lena.bmp”,位置在matlab当前工作区路径下D:\TempProject\Matlab\Works for i = [128,64,32,16,8,4,2]
syms(['out_photo',num2str(i)]);
%利用for循环定义7个变量,作为不同灰度值分辨率的输出变量
eval(['out_photo',num2str(i), '=histeq(in_photo,i)',';']);
%histeq函数用于改变图像灰度值,用eval函数给变量循环赋值
end
figure();
set(figure(1),'NumberTitle','off','Name','图像的灰度级调整') ;
%设置figure名称
subplot(2, 4, 1); imshow(in_photo,[]); title('Orginal');
subplot(2, 4, 2); imshow(out_photo128,[]); title('Gray value 128');
subplot(2, 4, 3);imshow(out_photo64,[]);title('Gray value 64');
subplot(2, 4, 4);imshow(out_photo32,[]);title('Gray value 32');
subplot(2, 4, 5);imshow(out_photo16,[]);title('Gray value 16');
subplot(2, 4, 6);imshow(out_photo8,[]);title('Gray value 8');
subplot(2, 4, 7);imshow(out_photo4,[]);title('Gray value 4');
subplot(2, 4, 8);imshow(out_photo2,[]);title('Gray value 2');
%输出所有图形
程序运行结果如下图:
可以看出原图lena.bmp被转化为灰度值分辨率不同的7个图像。
课题二:噪声的叠加与频域低通滤波器应用
设计要求:
往图像中叠加不同类型的噪声,并设计一个频域低通滤波器来去除之。
设计思路:
一、噪声叠加:
首先需要在输入图片中叠加不同类型的噪声。MATLAB®提供了imnoise函数用于在图像中加入噪声,调用格式如下:
J = imnoise(I,type)
J为叠加噪声后的图像,I为输入图像,type分为:'gaussian'(Gaussian white noise with constant mean and variance);'localvar'(Zero-mean Gaussian white noise with an intensity-dependent variance);'poisson'(Poisson noise);'salt & pepper'(On and off
pixels);'speckle'(Multiplicative noise).
二、低通频域滤波器算法原理
空间域滤波和频率域滤波的基础都是卷积定理,这说明两个空间函数的卷积可通过计算两个傅里叶变换函数的乘积的逆变换得到;相反地,两个空间函数的卷积的傅里叶变换恰好等于两个函数傅里叶变换的乘积。然而对于数字图像仅当f(x,y)和h(x,y)正确经过零填充后,表达式才严格有效。故在进行傅里叶变换前需先进行填零操作。
经过上述分析,可得到傅里叶变换的基本步骤:
(1)计算填充参数
(2)利用填充参数进行傅里叶变换
(3)根据type 生成传递函数H(x,y)
(4)传递函数与傅里叶变换相乘
(5)取G 的傅里叶逆变换实部
常见的低通频域滤波器有三种,分别为:理想低通滤波器,n阶巴特沃茨低通滤波器和高斯低通滤波器。
三、低通频域滤波器在Matlab®中的实现
结合傅里叶变换基本步骤和函数dftuv(M,N),在Matlab中实现低通频域滤波器的代码如下: