Matlab特定频率噪声滤波课设报告文档格式.docx
《Matlab特定频率噪声滤波课设报告文档格式.docx》由会员分享,可在线阅读,更多相关《Matlab特定频率噪声滤波课设报告文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
1.读取一幅灰度图像
2.加入特定频率的噪声
3.带通滤波
2.2总体设计方案
图2.2总体设计方案流程图
2.3设计原理
2.3.1DFT
离散傅里叶变换(DiscreteFourierTransform,缩写为DFT),是傅里叶变换在时域和频域上都呈离散的形式,将信号的时域采样变换为其DTFT的频域采样。
在形式上,变换两端(时域和频域上)的序列是有限长的,而实际上这两组序列都应当被认为是离散周期信号的主值序列。
即使对有限长的离散信号作DFT,也应当将其看作其周期延拓的变换。
在实际应用中通常采用快速傅里叶变换计算DFT。
下面给出离散傅里叶变换的变换对:
(1)对于N点序列0≦n<
N,它的离散傅里叶变换(DFT)为:
其中是自然对数的底数,是虚数单位。
通常以符号F表示这一变换,即
(2)离散傅里叶变换的逆变换(IDFT)为:
可以记为:
实际上,DFT和IDFT变换式中和式前面的归一化系数并不重要。
在上面的定义中,DFT和IDFT前的系数分别为1和1/N。
有时会将这两个系数都改成。
2.3.2滤波器设计
n阶Butterworth带阻滤波器的传递函数为:
其中W是阻带的宽度,D0是阻带的中心半径。
带阻滤波就是阻止特定范围的频率的信号通过,而允许其他范围的信号通过。
在径向对称的滤波器的情况下,这种滤波器可以由一个剖面完全确定。
在点(u0,v0)处的一个圆形邻域上产生的带阻滤波器是用高通滤波器的平移实现的。
获取图像的频域图像,使用Matlab函数观察干扰噪声的频率成分,找出所有的干扰分量,由于干扰分量在大致在一个圆上,所以可以用一个频谱特性为一个圆的带阻滤波器来滤除干扰分量。
滤波完成后将频域图像实施逆变换,即可显示处理后的图像。
3.程序设计
3.1程序流程图
图3.1程序流程图
3.2读取图像
%//////////////////////读原图并显示////////////////////
A=imread('
1.jpg'
);
I=rgb2gray(A);
figure
(1),imshow(I);
title('
原图'
%////显示原图频谱////
J=fftshift(fft2(I));
figure
(2),
imshow(log(abs(J)),[820]);
原图频谱'
)读取RGB图像;
I=rgb2gray(A)转换为灰度图像;
J=fftshift(fft2(I))对灰度图像进行FFT变换,并把求得频谱低频移至中心。
图3.2(a)灰度图像图3.2(b)灰度图像频谱
3.3加入特定频率的噪声
%//////////////////////加正弦噪声//////////////////////
[m,n]=size(I);
s=size(I);
[x,y]=meshgrid(1:
s
(1),1:
s
(2));
p=sin(10*x/5+10*y/20)+1;
f=(im2double(I)+p/2)/2;
f=uint8(f*256);
figure(3),%显示加噪声的图像
imshow(f);
加噪图像'
%////显示加噪后频谱////
K=fftshift(fft2(f));
figure(4),%显示加噪图像频谱
imshow(log(abs(K)),[820]);
加噪后频谱'
s=size(I)获取原图的维度;
sin(10*x/5+10*y/5)加入正弦噪声;
im2double(I)将原图像矩阵转换为0,1之间的double型。
图3.2(a)加噪图像图3.2(b)加噪图像频谱
3.4频域滤波
%//////////////n阶巴特沃斯滤波////////////////////////
k=fft2(f);
g=fftshift(k);
[N1,N2]=size(g);
W=10;
%阻带带宽
n=2;
d0=115;
%阻带中心频率
n1=round(N1/2);
n2=round(N2/2);
fori=1:
N1
forj=1:
N2
d=sqrt((i-n1)^2+(j-n2)^2);
h=1/(1+((d*W)/(d^2-d0^2))^(2*n));
%
y(i,j)=h*g(i,j);
end
end
y=ifftshift(y);
E1=ifft2(y);
E2=uint8(real(E1));
figure(5),
imshow(E2);
滤波后图像'
%///////////滤波频谱/////////////
J=fftshift(fft2(E2));
figure(6),
滤波后频谱'
k=fft2(f)将加噪声图像进行2维fft运算;
[N1,N2]=size(g)获取频谱维度;
W阻带带宽;
n=2阶数为2阶;
d0=115阻带中心频率为115;
round()取整;
滤波函数h=1/(1+((d*W)/(d^2-d0^2))^(2*n));
E1=ifft2(y)E2=uint8(real(E1))进行反变换。
图3.4(a)滤波后图像图3.4(b)滤波后图像频谱
3.5GUI界面设计
图3.5GUI界面
Matlab使用GUI图形用户界面,提供良好的人机交互环境。
4测试及分析
4.1测试结果
图4.1程序运行结果
4.1结果分析
对比原图频谱和加噪后频谱可以看出,正弦噪声频谱是位于同一个圆上的两个点;
再对比图像可以看到图片上增加了细小的网格线。
对比加噪频谱和还原频谱可以看出,带通滤波器将噪声频谱基本上滤除了;
再对比图像可以看出图像大部分网格线被去除了。
实验结果基本达到设计要求,设计成功。
5小结
通过这一周的数字图像课程设计,我不仅加深了对数字图像处理的理解,还掌握了一些基本的Matlab编程知识。
在刚我有些开始设计时,我有些迷茫,在逐步的深入方面学习后,我慢慢的对Matlab的学习产生了兴趣。
在课设过程中,我不仅对课本的基本知识有了更深一步的理解,同时对其他方面的知识有所了解,特别是对Matlab软件的应用有了初步的掌握,课程设计给了我能自己锻炼运用Matlab软件的平台。
作为一个应用软件,学好Matlab的关键就是在实践中不断积累,勤加练习,对于所学的程序要弄明白,真正理解每一步的操作原理。
在这次课设中,我明白了光学习课本的知识是远远不够的,只有将理论与实践相结合,才能对所学的知识有更全面的掌握。
设计过程中,我们遇到了很多问题,主要是编程上的问题。
网上和书上关于如何加入特定频率的噪声的资料非常少。
借阅了好多matlab图像处理的书收获也很小。
后来参考外国网站上的资料才好不容易实现了特定频率正弦噪声的添加。
根据我们的设计修改程序,结果出来了,还算理想。
至于巴特沃斯带通滤波器的设计,我翻阅了大量资料,上网,去图书馆,还参考了老师上课时的课件,最终还是得到了巴特沃斯带通滤波器的程序。
实践出真知,通过这次课程设计,我们进一步了解了数字图像处理基本理论,初步掌握了数字图像频域处理方法,进一步了解并掌握了MATLAB的图像处理技术。
这次课程设计,让我们体会到了致知于行的真正含义。
我们还懂得了,完成一项工作,光靠一个人的努力是不够的,明白了合作的重要性。
总之,这次课程设计对我们的启发很深,对我们以后走上工作岗位有实践意义。
6参考文献
[1]冈萨雷斯著.数字图像处理(第三版).北京:
电子工业出版社,2010
[2]杨杰李庆著.数字图像处理及MATLAB实现——学习与实验指导.北京:
[3]苏金明王永利著.MATLAB图形图像.北京:
电子工业出版社,2005
[4]朱习军隋思涟等著.MATLAB在信号与图像处理中的应用.北京:
电子工业出版社,2009
[5]张兆礼现代图像处理技术及Matlab实现.北京:
人民邮电出版社,2010
附录
p=sin(10*x/5+10*y/5)+1;
%///////////滤