当前位置:文档之家› Matlab特定频率噪声滤波课设报告

Matlab特定频率噪声滤波课设报告

目录1绪论 (2)2.方案设计 (3)2.1设计思路: (3)2.2总体设计方案 (3)2.3设计原理 (3)2.3.1 DFT (3)2.3.2滤波器设计 (4)3.程序设计 (5)3.1程序流程图 (5)3.2读取图像 (5)3.3加入特定频率的噪声 (6)3.4频域滤波 (7)3.5 GUI界面设计 (8)4测试及分析 (9)4.1测试结果 (9)4.1结果分析 (9)5小结 (10)6参考文献 (11)附录 (12)1绪论数字图像处理应用Matlab软件解决图像处理中的问题、难题,节省图像处理工作的时间,大大提高了图像处理的效率。

目前数字图像处理科学已成为各领域中各学科学习和研究的对象。

随着信息高速公路、数字地球概念的提出以及Internet的广泛应用,图像处理技术的需求与日俱增,图像处理科学无论是在理论上还是实践上都存在着巨大的潜力。

在图像处理的过程中,消除图像的噪声干扰是一个非常重要的问题。

一般滤除噪声的方法有两种:空间域滤波和频域滤波。

空域滤波是在图像空间中借助模板对图像进行领域操作,处理图像每一个像素的取值都是根据模板对输入像素相应领域内的像素值进行计算得到的。

空域滤波基本上是让图像在频域空间内某个范围的分量受到抑制,同时保证其他分量不变,从而改变输出图像的频率分布,达到增强图像的目的。

频域滤波是图像经傅里叶变换以后,边缘和其他尖锐变化(如噪音)在图像的灰度级中主要处于傅里叶变换的高频部分。

因此,可以通过图像和噪声的频率差别滤除噪声。

本次设计要求滤除特定频率的噪声,因此采用频域滤波方式中的巴特沃斯带阻滤波器。

关键字:数字图像处理,matlab,特定频率的噪声,频域,巴特沃斯带通滤波2.方案设计2.1设计思路:1.读取一幅灰度图像2.加入特定频率的噪声3.带通滤波2.2总体设计方案图2.2总体设计方案流程图2.3设计原理2.3.1 DFT离散傅里叶变换(Discrete Fourier Transform ,缩写为DFT ),是傅里叶变换在时域和频域上都呈离散的形式,将信号的时域采样变换为其DTFT 的频域采样。

在形式上,变换两端(时域和频域上)的序列是有限长的,而实际上这两组序列都应当被认为是离散周期信号的主值序列。

即使对有限长的离散信号作DFT ,也应当将其看作其周期延拓的变换。

在实际应用中通常采用快速傅里叶变换计算DFT 。

下面给出离散傅里叶变换的变换对:(1)对于N 点序列]}[{n x 0≦n<N ,它的离散傅里叶变换(DFT )为:][][ˆ102n x e k xN n nk N i ∑-=-=π 1,....,1,0-=N k其中 是自然对数的底数, 是虚数单位。

通常以符号F 表示这一变换,即 噪声图原图 滤波图噪声滤波Fx x=ˆ (2)离散傅里叶变换的逆变换(IDFT )为:][1][ˆ102n x e Nk x N n nk N i ∑-==π 1,....,1,0-=N k可以记为:x F x 1ˆ-= 实际上,DFT 和IDFT 变换式中和式前面的归一化系数并不重要。

在上面的定义中,DFT 和IDFT 前的系数分别为1 和1/N 。

有时会将这两个系数都改成n /1。

2.3.2滤波器设计n 阶 Butterworth 带阻滤波器的传递函数为:n D v u D W v u D v u H 222]0),(),([11),(-+= 其中W 是阻带的宽度,D0是阻带的中心半径。

带阻滤波就是阻止特定范围的频率的信号通过,而允许其他范围的信号通过。

在径向对称的滤波器的情况下,这种滤波器可以由一个剖面完全确定。

在点(u0,v0)处的一个圆形邻域上产生的带阻滤波器是用高通滤波器的平移实现的。

获取图像的频域图像,使用Matlab 函数观察干扰噪声的频率成分,找出所有的干扰分量,由于干扰分量在大致在一个圆上,所以可以用一个频谱特性为一个圆的带阻滤波器来滤除干扰分量。

滤波完成后将频域图像实施逆变换,即可显示处理后的图像。

3.程序设计3.1程序流程图开始Imread()读取原图Rgb2gray()转换为灰度Imshow()显示灰度图像及其频谱加噪声Imshow()显示加噪后图像及带阻滤波Imshow()显示滤波后图像及结束图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)),[8 20]);title('原图频谱');A=imread('1.jpg')读取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);title('加噪图像');%////显示加噪后频谱////K=fftshift(fft2(f));figure(4),%显示加噪图像频谱imshow(log(abs(K)),[8 20]);title('加噪后频谱');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);for i=1:N1for j=1:N2d=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);endendy=ifftshift(y);E1=ifft2(y);E2=uint8(real(E1));figure(5),imshow(E2);title('滤波后图像');%///////////滤波频谱/////////////J=fftshift(fft2(E2));figure(6),imshow(log(abs(J)),[8 20]);title('滤波后频谱');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));y=ifftshift(y);E1=ifft2(y)E2=uint8(real(E1))进行反变换。

图3.4(a)滤波后图像图3.4(b)滤波后图像频谱3.5 GUI界面设计图3.5GUI界面Matlab使用GUI图形用户界面,提供良好的人机交互环境。

4测试及分析4.1测试结果图4.1程序运行结果4.1结果分析对比原图频谱和加噪后频谱可以看出,正弦噪声频谱是位于同一个圆上的两个点;再对比图像可以看到图片上增加了细小的网格线。

对比加噪频谱和还原频谱可以看出,带通滤波器将噪声频谱基本上滤除了;再对比图像可以看出图像大部分网格线被去除了。

实验结果基本达到设计要求,设计成功。

5小结通过这一周的数字图像课程设计,我不仅加深了对数字图像处理的理解,还掌握了一些基本的Matlab编程知识。

在刚我有些开始设计时,我有些迷茫,在逐步的深入方面学习后,我慢慢的对Matlab的学习产生了兴趣。

在课设过程中,我不仅对课本的基本知识有了更深一步的理解,同时对其他方面的知识有所了解,特别是对Matlab软件的应用有了初步的掌握,课程设计给了我能自己锻炼运用Matlab软件的平台。

作为一个应用软件,学好Matlab的关键就是在实践中不断积累,勤加练习,对于所学的程序要弄明白,真正理解每一步的操作原理。

在这次课设中,我明白了光学习课本的知识是远远不够的,只有将理论与实践相结合,才能对所学的知识有更全面的掌握。

设计过程中,我们遇到了很多问题,主要是编程上的问题。

网上和书上关于如何加入特定频率的噪声的资料非常少。

借阅了好多matlab图像处理的书收获也很小。

后来参考外国网站上的资料才好不容易实现了特定频率正弦噪声的添加。

根据我们的设计修改程序,结果出来了,还算理想。

至于巴特沃斯带通滤波器的设计,我翻阅了大量资料,上网,去图书馆,还参考了老师上课时的课件,最终还是得到了巴特沃斯带通滤波器的程序。

实践出真知,通过这次课程设计,我们进一步了解了数字图像处理基本理论,初步掌握了数字图像频域处理方法,进一步了解并掌握了MATLAB的图像处理技术。

这次课程设计,让我们体会到了致知于行的真正含义。

我们还懂得了,完成一项工作,光靠一个人的努力是不够的,明白了合作的重要性。

总之,这次课程设计对我们的启发很深,对我们以后走上工作岗位有实践意义。

6参考文献[1] 冈萨雷斯著.数字图像处理(第三版).北京:电子工业出版社,2010[2] 杨杰李庆著.数字图像处理及MATLAB实现——学习与实验指导.北京:电子工业出版社,2010[3] 苏金明王永利著.MATLAB图形图像. 北京:电子工业出版社,2005[4] 朱习军隋思涟等著.MATLAB在信号与图像处理中的应用. 北京:电子工业出版社,2009[5] 张兆礼现代图像处理技术及Matlab实现.北京:人民邮电出版社,2010附录%//////////////////////读原图并显示//////////////////// A=imread('1.jpg');I=rgb2gray(A);figure(1),imshow(I);title('原图');%////显示原图频谱////J=fftshift(fft2(I));figure(2),imshow(log(abs(J)),[8 20]);title('原图频谱');%//////////////////////加正弦噪声////////////////////// [m,n]=size(I);s=size(I);[x,y]=meshgrid(1:s(1),1:s(2));p=sin(10*x/5+10*y/5)+1;f=(im2double(I)+p/2)/2;f=uint8(f*256);figure(3),%显示加噪声的图像imshow(f);title('加噪图像');%////显示加噪后频谱////K=fftshift(fft2(f));figure(4),%显示加噪图像频谱imshow(log(abs(K)),[8 20]);title('加噪后频谱'); %//////////////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);for i=1:N1for j=1:N2d=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);endendy=ifftshift(y);E1=ifft2(y);E2=uint8(real(E1));figure(5),imshow(E2);title('滤波后图像');%///////////滤波频谱/////////////J=fftshift(fft2(E2));figure(6),imshow(log(abs(J)),[8 20]);title('滤波后频谱');。

相关主题