实验4.DFT及频域滤波

实验4.DFT及频域滤波
实验4.DFT及频域滤波

实验名称:数字图像DFT 及频域滤波 一. 实验目的

1. 了解数字图像各种正交变换的概念、原理和用途。

2. 深熟练掌握数字图像的 DFT/DCT 的原理、方法和实现流程,熟悉两种变换的性质,并能对数字图像 DFT 及 DCT 的结果进行必要解释。

3. 熟悉熟悉和掌握利用 MATLAB 工具进行数字图像 FFT 及 DCT 的基本步骤、MATLAB 函数使用及具体变换的处理流程,并能根据需要进行必要的频谱分析和可视化显示。

4. 熟悉利用空域滤波器构建对应的频域滤波器的方法和关键步骤。

5. 熟悉和掌握几种典型的频域低通滤波器及高通滤波器的原理、特性和作用。

6. 搞清空域图像处理与频域图像处理的异同,包括处理流程、各自的优势等。掌握 频域滤波的基本原理和基本流程,并能编写出相应的程序代码。

二. 实验原理 1、 F FT 实验

● 傅立叶变换:非周期函数表示为正弦和/或余弦乘以加权函数的积分。 ● 一维连续Fourier 变换

对函数f (x )进行傅立叶变换得到F (u )

()()2j xu F u f x e dx π+∞

--∞

=?

(1)

逆变换,即将F (u)变换到f (x )为

()()2j xu f x F u e du π+∞

-∞

=?

(2)

● 一维离散Fourier 变换

正变换(DFT)

()1

2/0

(),0,1,,1N j xu N x F u f x e u N π--===-∑L

(3)

逆变换(IDFT)

()1

2/0

1

(),0,1,,1N j xu N

u f x F u e

x N N

π-==

=-∑L (4)

● 用幅值和相位表示傅立叶变换

()()()

j u F u F u e

θ= (5)

● 用途:频域滤波,图像增强,频谱分析。

三. 实验步骤

1.模型图像的 FFT 实验

1)利用 MATLAB 程序自行生成如图(1)的(a)、(b)所示的二值图像,分

别对其分别进行离散傅立叶变换(DFT )计算。

(a)(b)

2)对变换结果做频谱中心化处理,并分别显示出其 2D 频谱图以及对应的

3D频谱图。

3)

对以上两幅原始图像 FFT 后的频谱图进行分析,可以得出什么样的结论

或验证了DFT的什么性质。

2.实际图像的 FFT 实验

1)读任意读取一幅灰度图像,对其进行 FFT 变换,分别画出变换前的原始图

像及其 FFT 后频谱的 2D 平面图,要求变换结果做频谱中心化处理。

2)画出对应的3D中心化频谱。

图 1

由全零矩阵分别生

成如成像如ab的矩阵

分别对上述矩阵做fft2,

并对结果中心化处理

创建全零

的矩阵I

分别画出a,b

分别显示3D

频谱图

调用mesh()函数

结束

分别显示2D

频谱图

图 3

3. 数字图像的频域滤波处理

1) 设定截止频率 D 0 =100,试分别构建 256×256 的频域理想低通滤波器

(ILPF )和频域理想高通滤波器(IHPF )。编写 MATLAB 代码,分别画出它们的频域滤波器响应 3D 图及其对应的 2D 投影平面图。

2) 任意读取一幅数字图像。编写 MATLAB 代码,分别利用理想低通滤波器

(ILPF ) 和理想高通滤波器(IHPF )对其进行频域滤波处理。具体可参考如下步骤:

(1) 消除折叠现象的填充:P=2M ,Q=2N ,其中 M 、N 为原图像的尺寸; (2) 原图 f (x , y ) 的傅立叶变换,产生 F (u ,v ) ;

(3) 频谱中心化处理(当然也可以不变换,则 H (u ,v ) 要改变); (4) 用滤波器函数 H (u ,v ) 乘以 F (u ,v ) ; (5) 傅立叶反变换;

(6) 取实数部分,绝对值很小的虚数部分是浮点运算存在误差造成的; (7) 空间域中心还原变换(反中心化) 。

3) 分别显示 ILPF 和 IHPF 两种滤波器滤波前的原始图像、滤波器频域响应

(2D )及滤波结果图像。 4) 对滤波结果进行必要分析,如振铃现象、图像模糊、图像变暗等说明原因,

以及 尽可能克服这些现象的有效措施等。

对读入信号做fft2,并对结果中心化处理

读入一副灰度图像

调用mesh ()函数

结束

分别画出原图和fft 后的2D 频谱图

分别画出3D 频谱图

图 4

四. 实验结果及分析

1.

模型图像的 FFT 实验

在fs=500Hz ,初始时刻为1800ms 下,取出其中一列

信号,对t 离散化

对上列离散信号进行

FFT ,得到y

读入数字信号

分别得到频谱中心化及有效频

率范围方式下的幅值结束

画出信号振幅随时间变化的

波形图

分别画出信号

频谱图

在截止频率D0=100,分别写出1、2、4阶巴特沃思滤波器

分选用上述2阶滤波器与读

取信号进行点乘

分别画出频率响应曲线

画出频率响应

曲线

图 5

● 分析I1的白色矩形面积小与I ,可以认为I1是I 的缩小。 ● 而傅立叶有如下的变换性质: (x,y)(u,v)af aF ? (6)

(ax,by)(1/)(u/a,v/b)f ab F ?

(7)

从图(5)和图(6)可以验证该性质。

图 7

图 6

2.实际图像的FFT实验

3.数字图像的频域滤波处理

图8

图9

图10

振铃现象:已知频域上的方波对应着空域的sinc 波,频域:

(,)(,)(,)G u v F u v H u v =,傅立叶反变换到时域有:(,)(,)*(,)g x y f x y h x y =,频域相乘相当于时域作卷积。图像经过理想低通滤波器后,时域上相当于原始图像与sinc 函数卷积,由于sinc 函数振荡,则卷积后图像也会振荡;

图 12

图 11

或者说由于sinc函数有两个负边带,卷积后图像信号两侧出现“过冲现

象”,而且能量不集中,即产生振铃效应。可以使用高斯低通滤波解决该

现象。

●图像模糊:由于理想低通滤波器,滤去高通成分,削弱了图像的细节,从

而使图像变得模糊

●图像变暗:由于高通滤波器会滤去低通成分,只突出图像细节,所以图像

变暗,为改善这种情况,将高通滤波器的转移函数加上一常数量以便引入一些低频

分量,也就是高频提升滤波器。

六.实验心得体会和建议

●心得体会:通过这次实验使我明白了可以利用傅立叶变换将空域滤波转换

在频域滤波,更加符合人们的认知,而且便于在实际中实现。

●建议:可以让大家编写相关代码解决振铃现象,图像变暗。

七.程序源代码

1.模型图像的FFT实验

fs=1000;

I=zeros(256,256);%创建I矩阵

I(98:158,98:158)=1;

I1=zeros(256,256);%创建I1矩阵

I1(118:138,118:138)=1;

subplot(121),imshow(I);title('I');%分别在同一幅图中画出I和I1矩阵subplot(122),imshow(I1);title('I1');

F=fft2(I);F_1=abs(fftshift(F));%分别对I和I1矩阵做二维傅立叶变换,并对结果中心化处理

F1=fft2(I1);F1_1=abs(fftshift(F1));

figure,%分别显示2D频谱图

subplot(121),imshow(log(1+F_1),[]);title('The 2D Spectrum of I'); subplot(122),imshow(log(1+F1_1),[]);title('The 2D Spectrum of I1'); figure,%分别显示3D频谱图

subplot(121),mesh(F_1);title('The 3D Spectrum of I');

图像的傅立叶变换与频域滤波

实验四 图像的傅立叶变换与频域滤波 一、 实验目的 1了解图像变换的意义和手段; 2熟悉傅里叶变换的基本性质; 3熟练掌握FFT 方法的应用; 4通过实验了解二维频谱的分布特点; 5通过本实验掌握利用MATLAB 编程实现数字图像的傅立叶变换。 6、掌握怎样利用傅立叶变换进行频域滤波 7、掌握频域滤波的概念及方法 8、熟练掌握频域空间的各类滤波器 9、利用MATLAB 程序进行频域滤波 二、 实验原理 1应用傅立叶变换进行图像处理 傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。通过实验培养这项技能,将有助于解决大多数图像处理问题。对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。 2傅立叶(Fourier )变换的定义 对于二维信号,二维Fourier 变换定义为 : ??∞ ∞ -+-==dxdy e y x f v u F y x f F vy ux j )(2),(),()},({π

二维离散傅立叶变换为: ∑ ∑-=+--==10)(21 01 ),(),(N y N y u M x u j M x MN e y x f v u F π 图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见参考书目,有关傅立叶变换的快速算法的程序不难找到。实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。 3利用MATLAB 软件实现数字图像傅立叶变换的程序: I=imread(‘原图像名.gif’); %读入原图像文件 imshow(I); %显示原图像 fftI=fft2(I); %二维离散傅立叶变换 sfftI=fftshift(fftI); %直流分量移到频谱中心 RR=real(sfftI); %取傅立叶变换的实部 II=imag(sfftI); %取傅立叶变换的虚部 A=sqrt(RR.^2+II.^2);%计算频谱幅值 A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225; %归一化 figure; %设定窗口 imshow(A); %显示原图像的频谱 域滤波分为低通滤波和高通滤波两类,对应的滤波器分别为低通滤波器和 高通滤波器。频域低通过滤的基本思想: G(u,v)=F(u,v)H(u,v) F(u,v)是需要钝化图像的傅立叶变换形式,H(u,v)是选取的一个低通过滤

空间域滤波器(实验报告)

数字图像处理作业 ——空间域滤波器 摘要 在图像处理的过程中,消除图像的噪声干扰是一个非常重要的问题。本文利用matlab软件,采用空域滤波的方式,对图像进行平滑和锐化处理。平滑空间滤波器用于模糊处理和减小噪声,经常在图像的预处理中使用;锐化空间滤波器主要用于突出图像中的细节或者增强被模糊了的细节。本文使用的平滑滤波器有中值滤波器和高斯低通滤波器,其中,中值滤波器对去除椒盐噪声特别有效,高斯低通滤波器对去除高斯噪声效果比较好。使用的锐化滤波器有反锐化掩膜滤波、Sobel边缘检测、Laplacian边缘检测以及Canny算子边缘检测滤波器。不同的滤波方式,在特定的图像处理应用中有着不同的效果和各自的优势。

1、分别用高斯滤波器和中值滤波器去平滑测试图像test1和2,模板大小分别 是3x3 , 5x5 ,7x7;利用固定方差 sigma=1.5产生高斯滤波器. 附件有产生高斯滤波器的方法。 实验原理分析: 空域滤波是直接对图像的数据做空间变换达到滤波的目的。它是一种邻域运算,其机理就是在待处理的图像中逐点地移动模板,滤波器在该点地响应通过事先定义的滤波器系数与滤波模板扫过区域的相应像素值的关系来计算。如果输出像素是输入像素邻域像素的线性组合则称为线性滤波(例如最常见的均值滤波和高斯滤波),否则为非线性滤波(中值滤波、边缘保持滤波等)。 空域滤波器从处理效果上可以平滑空间滤波器和锐化空间滤波器:平滑空间滤波器用于模糊处理和减小噪声,经常在图像的预处理中使用;锐化空间滤波器主要用于突出图像中的细节或者增强被模糊了的细节。 模板在源图像中移动的过程中,当模板的一条边与图像轮廓重合后,模板中心继续向图像边缘靠近,那么模板的某一行或列就会处于图像平面之外,此时最简单的方法就是将模板中心点的移动范围限制在距离图像边缘不小于(n-1)/2个像素处,单处理后的图像比原始图像稍小。如果要处理整幅图像,可以在图像轮廓边缘时用全部包含于图像中的模板部分来滤波所有图像,或者在图像边缘以外再补上一行和一列灰度为零的像素点(或者将边缘复制补在图像之外)。 ①中值滤波器的设计: 中值滤波器是一种非线性统计滤波器,它的响应基于图像滤波器包围的图像区域中像素的排序,然后由统计排序的中间值代替中心像素的值。它比小尺寸的线性平滑滤波器的模糊程度明显要低,对处理脉冲噪声(椒盐噪声)非常有效。中值滤波器的主要功能是使拥有不同灰度的点看起来更接近于它的邻近值,去除那些相对于其邻域像素更亮或更暗,并且其区域小于滤波器区域一半的孤立像素集。 在一维的情况下,中值滤波器是一个含有奇数个像素的窗口。在处理之后,位于窗口正中的像素的灰度值,用窗口内各像素灰度值的中值代替。例如若窗口长度为5,窗口中像素的灰度值为80、90、200、110、120,则中值为110,因为按小到大(或大到小)排序后,第三位的值是110。于是原理的窗口正中的灰度值200就由110取代。如果200是一个噪声的尖峰,则将被滤除。然而,如果它是一个信号,则滤波后就被消除,降低了分辨率。因此中值滤波在某些情况下抑制噪声,而在另一些情况下却会抑制信号。 将中值滤波推广到二维的情况。二维窗口的形式可以是正方形、近似圆形的或十字形等。本次作业使用正方形模板进行滤波,它的中心一般位于被处理点上。窗口的大小对滤波效果影响较大。 根据上述算法利用MATLAB软件编程,对源图像test1和test2进行滤波处理,结果如下图:

频域滤波

数字图像处理实验报告 班级:13计算机01班姓名:郭培甲 学号:20134440117 指导老师:蒋良卫 时间:2016-5-5

实验七 图像增强—频域滤波 一、 实验目的 1.掌握怎样利用傅立叶变换进行频域滤波 2.掌握频域滤波的概念及方法 3.熟练掌握频域空间的各类滤波器 4.利用MATLAB 程序进行频域滤波 二、 实验原理及知识点 频域滤波分为低通滤波和高通滤波两类,对应的滤波器分别为低通滤波器和高通滤波器。频域低通过滤的基本思想: G(u,v)=F(u,v)H(u,v) F(u,v)是需要钝化图像的傅立叶变换形式,H(u,v)是选取的一个低通过滤器变换函数,G(u,v)是通过H(u,v)减少F(u,v)的高频部分来得到的结果,运用傅立叶逆变换得到钝化后的图像。 理想地通滤波器(ILPF)具有传递函数: 001(,)(,)0(,)ifD u v D H u v ifD u v D ≤?=?>? 其中,0D 为指定的非负数,(,)D u v 为(u,v)到滤波器的中心的距离。0(,)D u v D =的点的轨迹为一个圆。 n 阶巴特沃兹低通滤波器(BLPF)(在距离原点0D 处出现截至频率)的传递函数为201 (,)1[(,)]n H u v D u v D =+ 与理想地通滤波器不同的是,巴特沃兹率通滤波器的传递函数并不是在

0D 处突然不连续。 高斯低通滤波器(GLPF)的传递函数为 2 22),(),(σv u D e v u H = 其中,σ为标准差。 相应的高通滤波器也包括:理想高通滤波器、n 阶巴特沃兹高通滤波器、高斯高通滤波器。给定一个低通滤波器的传递函数(,)lp H u v ,通过使用如下的简单关系,可以获得相应高通滤波器的传递函数:1(,)hp lp H H u v =- 利用MATLAB 实现频域滤波的程序 主程序: clc;clear all f=imread('room.tif'); F=fft2(f); %对图像进行傅里叶变换 %对变换后图像进行对数变换,并对其坐标进行平移,使其中心化 S=fftshift(log(1+abs(F))); S=gscale(S); %将图像频谱标度在0-255的范围内 subplot 121;imshow(f); title('原始图像') subplot 122;imshow(S) %显示频谱图像 title('原始图像的频谱') h=fspecial('sobel'); %产生空间‘sobel ’模板 freqz2(h) %查看相应频域滤波器的图像 PQ=paddedsize(size(f)); %产生滤波时所需大小的矩阵 H=freqz2(h,PQ(1),PQ(2)); %产生频域中的‘sobel ’滤波器 H1=ifftshift(H); %重拍数据序列,使得原点位于频率矩阵的左上角 figure subplot 121;imshow(abs(H),[]) %以图形形式显示滤波器 title('空间滤波器') subplot 122;imshow(abs(H1),[]) title('空间滤波器移位后的频谱') gs=imfilter(double(f),h); %用模板h 进行空域滤波 gf=dftfilt(f,H1); %用滤波器对图像进行频域滤波 subplot 221;imshow(gs,[]) title('用模板h 进行空域滤波后的图像')

实验一图像变换及频域滤波7页

实验一 图像变换及频域滤波 1. 实验任务 (1)编写快速傅里叶变换算法程序,验证二维傅里叶变换的平移性和旋转不变性; (2)实现图像频域滤波,加深对频域图像增强的理解; (3)总结实验过程(实验报告,左侧装订):方案、编程、调试、结果、分析、结论。 2. 实验环境 Windws2000/XP 3. 开发工具 (1)MATLAB 6.x (2)Visual C++、Visual Basic 或其它 4. 实验内容及步骤 (1)产生如图3.1所示图像),(1y x f (128×128大小,暗处=0,亮处=255),用MATLAB 中的fft2函数对其进行FFT : 源程序: clc a=zeros(128,128) for y=54:74 for x=34:94 a(x,y)=1; end

end figure(1) a1=fft2(a); subplot(1,2,1); imshow(a); subplot(1,2,2); a2=abs(a1); mesh(a2); for x=1:128 for y=1:128 b(x,y)=(-1).^(x+y).*a(x,y); end end figure(2) b1=fft2(b); subplot(1,2,1); imshow(b); subplot(1,2,2); b2=abs(b1); mesh(b2); figure(3) t=imrotate(a,315,'nearest','crop')

t1=fft2(t); subplot(1,2,1); imshow(t); subplot(1,2,2); t2=abs(t1); surf(t2); ① 同屏显示原图1f 和)(FFT 1f 的幅度谱图; 图1.1 ② 若令 ),()1(),(12y x f y x f y x +-=,重复以上过程,比较二者幅度谱的异同,简述理 由; 图1.2 ③ 若将),(2y x f 顺时针旋转45度得到),(3y x f ,试显示)(FFT 3f 的幅度谱,并与)(FFT 2f 的幅度谱进行比较。 图1.3 结论:将图1.3与图1.1比较可知,将原图移动旋转45度以后,幅度谱图仍然没的改变,图象能量依然集中在4个角. (2)对如图3.2所示的数字图像lena.img (256×256大小、256级灰度)进行频域的理想低通、高通滤波,同屏显示原图、幅度谱图和低通、高通滤波的结果图。 源程序: clc a=fopen('lena.img','r'); 图3.1 实验图象

实验三 图像的空间域滤波

1 A=imread('E:\pic\1.jpg'); I=rgb2gray(A); subplot(1,3,1); imshow(I);title('原图'); J=imnoise(I,'salt & pepper',0.05); subplot(1,3,2); imshow(J); title('加入椒盐噪声图象'); K=imnoise(I,'gaussian',0.01,0.02); subplot(1,3,3); imshow(K);title('加入高斯噪声图象'); 2 A=imread('E:\pic\1.jpg'); I=rgb2gray(A); Subplot(2,2,1); Imshow(I);title('原图'); H=fspecial('motion',20,45); MotionBlur=imfilter(I,H,'replicate'); Subplot(2,2,2); Imshow(MotionBlur);title('MotionBlur image'); H=fspecial('disk',10); blurred=imfilter(I,H,'replicate'); Subplot(2,2,3); Imshow(blurred);title('Blurred image'); H=fspecial('unsharp',0.5); Sharpened=imfilter(I,H,'replicate'); Subplot(2,2,4); Imshow(Sharpened);title('sharpened image');

3 A=imread('E:\pic\1.jpg'); I=rgb2gray(A); J=imnoise(I,'salt & pepper',0.05); Subplot(2,2,1);imshow(J);title('加入椒盐噪声图象'); H=fspecial('motion',20,45); MotionBlur=imfilter(J,H,'replicate'); Subplot(2,2,2); Imshow(MotionBlur);title('replicate'); MotionBlur=imfilter(J,H,'symmetric'); Subplot(2,2,3); Imshow(MotionBlur);title('symmetric'); MotionBlur=imfilter(J,H,'circular'); Subplot(2,2,4); Imshow(MotionBlur);title('circular');

图像的傅立叶变换与频域滤波

实验四图像的傅立叶变换与频域滤波 一、实验目的 1 了解图像变换的意义和手段; 2 熟悉傅里叶变换的基本性质; 3 熟练掌握FFT 方法的应用; 4 通过实验了解二维频谱的分布特点; 5 通过本实验掌握利用MATLAB 编程实现数字图像的傅立叶变换。 6、掌握怎样利用傅立叶变换进行频域滤波 7、掌握频域滤波的概念及方法 8、熟练掌握频域空间的各类滤波器 9、利用MATLAB 程序进行频域滤波 二、实验原理 1 应用傅立叶变换进行图像处理 傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。通过实验培养这项技能,将有助于解决大多数图像处理问题。对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。 2 傅立叶( Fourier )变换的定义

对于二维信号,二维Fourier 变换定义为: F{ f (x, y)} F(u,v) f (x,y)e j2 (ux vy)dxdy 二维离散傅立叶变换为: F(u,v) MINI 侖 f (x,y)e j2 (uxM uyN) x 0 y 0 图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见参考书目,有关傅立叶变换的快速算法的程序不难找到。实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。 3利用MATLAB软件实现数字图像傅立叶变换的程序: 匸imread( '原图像名.gif ' ); % 读入原图像文件 imshow(l); % 显示原图像 fftl=fft2(l); % 二维离散傅立叶变换 sfftl=fftshift(fftl); % 直流分量移到频谱中心 RR=real(sfftl); % 取傅立叶变换的实部 ll=imag(sfftl); % 取傅立叶变换的虚部 A=sqrt(RR.A2+ll.A2);% 计算频谱幅值 A= ( A-min(min(A)) )/(max(max(A))-min(min(A)))*225; %归一化 figure; %设定窗口 imshow(A); %显示原图像的频谱

空间域图像滤波

function Template=gausTemplate(n,sigma) end ---------------------------------------------------------------------------------------------------------------------- clc clear im=imread('C:\Users\Administrator\Desktop\lena.jpg'); s=11;sigma=10; k=(s-1)/2; Template=gausTemplate(s,sigma);%生成高斯模板 [m,n]=size(im); %图像扩边 %%%%%%%%%%%%%%%%%% for i=k+1:m+k for j=k+1:n+k neighbor=;%%%%点i,j的邻阈 temp=;%%邻域内点乘 imF(i,j)=;%计算滤波器响应 end end imFil=imF(k+1:m+k,k+1:n+k);%滤波后的图像 imFil=uint8(imFil); imshow(imFil) clc clear im=imread('C:\Users\Administrator\Desktop\lena.jpg'); s=3;sigma=0.8; k=(s-1)/2; Template=gausTemplate(s,sigma);%éú3é???1?£°? [m,n]=size(im); %í???à?±? new=zeros(m+2*k,n+2*k);

new(k+1:m+k,k+1:n+k)=im; %%%%%%%%%%%%%%%%%% for i=k+1:m+k for j=k+1:n+k neighbor=new(i-k:i+k,j-k:j+k) ;%%%%μ?i,jμ?áú?Dtemp=neighbor.*Template ;%%áúóò?úμ?3? imF(i,j)=sum(temp(:)) ;%??????2¨?÷?ìó| end end imFil=imF(k+1:m+k,k+1:n+k);%??2¨oóμ?í??? imFil=uint8(imFil); imshow(imFil);

实验二 数字图像的空间域滤波和频域滤波

实验二数字图像的空间域滤波和频域滤波 实验二数字图像的空间域滤波和频域滤波一(实验目的 1. 掌握图像滤波的基本定义及目的; 2. 理解空间域滤波的基本原理及方法; 3. 掌握进行图像的空域滤波的方法。 4. 掌握傅立叶变换及逆变换的基本原理方法; 5. 理解频域滤波的基本原理及方法; 6. 掌握进行图像的频域滤波的方法。 二(实验内容 1. 平滑空间滤波: a) 读出eight.tif这幅图像,给这幅图像分别加入椒盐噪声和高斯噪 声后并与前一张图显示在同一图像窗口中;(提示:imnoise) b) 对加入噪声图像选用不同的平滑(低通)模板做运算,对比不同 模板所形成的效果,要求在同一窗口中显示;(提示:fspecial、 imfilter或filter2) c) 使用函数imfilter时,分别采用不同的填充方法(或边界选项, 如零填充、’replicate’、’symmetric’、’circular’)进行低通滤波,显示处理后的图像 d) 运用for循环,将加有椒盐噪声的图像进行10次,20次均值滤 波,查看其特点,显示均值处理后的图像;(提示:利用fspecial函 数的’average’类型生成均值滤波器) e) 对加入椒盐噪声的图像分别采用均值滤波法,和中值滤波法对有 噪声的图像做处理,要求在同一窗口中显示结果。(提

示:medfilt2) f) 自己设计平滑空间滤波器,并将其对噪声图像进行处理,显示处 理后的图像; 2. 锐化空间滤波 a) 读出blurry_moon.tif这幅图像,采用3×3的拉普拉斯算子w = [ 1, 1, 1; 1 – 8 1; 1, 1, 1]对其进行滤波; b) 编写函数w = genlaplacian(n),自动产生任一奇数尺寸n的拉普 拉斯算子,如5×5的拉普拉斯算子 w = [ 1 1 1 1 1 1 1 1 1 1 1 1 -24 1 1 1 1 1 1 1 1 1 1 1 1] c) 分别采用5×5,9×9,15×15和25×25大小的拉普拉斯算子对 1 blurry_moon.tif进行锐化滤波,并利用式 2完成图像的锐化增强,观察其有gxyfxyfxy(,)(,)(,),,, 何不同,要求在同一窗口中显示; d) 采用不同的梯度算子对blurry_moon.tif进行锐化滤波,并比较其 效果 e) 自己设计锐化空间滤波器,并将其对噪声图像进行处理,显示处 理后的图像; 3. 傅立叶变换 a) 读出woman.tif这幅图像,对其进行快速傅立叶变换,分别显示

图像的频域滤波

实验六:图像的频域滤波 姓名:朱永祥学号20171170238 得分: 一、实验目的: 1、掌握傅立叶变换及逆变换的基本原理方法。 2、理解频域滤波的基本原理及方法。 3、掌握进行图像的频域滤波的方法。 二、实验内容与要求: 1、傅立叶变换 (1)读出woman.tif这幅图像,对其进行快速傅立叶变换,分别显示其幅度图像和相位图像。仅对相位部分进行傅立叶反变换后查看结果图像。 (2)仅对幅度部分进行傅立叶反变换后查看结果图像。 (3)将图像的傅立叶变换F置为其共轭后进行反变换,比较新生成图像与原始图像的差异。 2、平滑频域滤波 (1)设计理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器,截至频率自选,分别给出各种滤波器的透视图。 (2)读出test_pattern.tif这幅图像,分别采用理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器对其进行滤波(截至频率自选),再做反变换,观察不同的截止频率下采用不同低通滤波器得到的图像与原图像的区别,特别注意振铃效应。(提示:1)在频率域滤波同样要注意到填充问题;2)注意到(-1)x+y;) 3、锐化频域滤波 (1)设计理想高通滤波器、巴特沃斯高通滤波器和高斯高通滤波器,截至频率自选,分别给出各种滤波器的透视图。 (2)读出test_pattern.tif这幅图像,分别采用理想高通滤波器、巴特沃斯高通滤波器和高斯高通滤波器对其进行滤波(截至频率自选),再做反变换,观察不同的截止频率下采用不同高通滤波器得到的图像与原图像的区别。 三、实验代码及结果: 1、(1)a、实验代码: >> img=imread('C:\Users\xxdn\Desktop\图片1.png'); >> img=rgb2gray(img); >> f1=fft2(img); >> f2=log(1+abs(f1)); >> f3=fftshift(f1); >> f4=angle(f1); >>figure,subplot(1,3,1),imshow(img),title('Original Image'); subplot(1,3,2),imshow(log(1+abs(f3)),[]),title('amplitude spectrum'); subplot(1,3,3),imshow(f4),title('phase spectrum'); >> i=sqrt(-1);

频域滤波

一、频域滤波(低通滤波、高通滤波) (一)频域低通滤波器 1.实验目的:通过低通滤波器函数模板来处理图像,牺牲图像 清晰度为代价来减少干扰效果的修饰过程。 2.实验内容:用不同的低通滤波器对原始图像进行处理并比 较。 3.实验原理: 1)理想低通滤波器 最容易想到的衰减高频成分方法是在一个称为‘截止频 率’的位置截断所有的高频成分,将图像频谱中所有高 于这一截止的频谱成分设为0,低于截止频率的成分 设为保持不变。能够达到这种效果的滤波器我们称之为 理想低通滤波器。 其中,D0表示通带的半径。滤波器的频率域原点在频 谱图像的中心处,在以截止频率为半径的圆形区域之 内的滤镜元素值全部为1,而该圆之外的滤镜元素值 全部为0.理想低通滤波器的频率特性在截止频率处十

分陡峭,无法用硬件实现,这也是我们称之为理想的 原因,但其软件编程的模拟实现较为简单。 2)巴特沃斯低通滤波器 同样的,D0表示通带的半径,n表示的是巴特沃斯滤 波器的次数。 3)高斯低通滤波器 D0表示通带的半径。 4.过程与结果: 1)对一幅图像用理想低通滤波器结果如图: 原图及其频谱图

D0=60时理想低通滤波器转移函数的平面图及剖面图 D0=160时理想低通滤波器转移函数的平面图及剖面图

D0=60时理想低通滤波器的处理结果

2) 对一幅图像用巴特沃斯低通滤波器处理,结果如图: D0=100, n=1时理想低通滤波器转移函数的平面图及剖面图 D0=100,n=3时理想低通滤波器转移函数的平面图 及剖面图

D0=100,n=1时理想低通滤波器转移函数的频谱图及结果

数字图像的空间域滤波和频域滤波

数字图像的空间域滤波和频域滤波

三、实验过程 1. 平滑空间滤波: 1) 读出一幅图像,给这幅图像分别加入椒盐噪声和高斯噪声后并与前一张图显示在同一图像窗口中。 椒盐噪声: def salt_pepperNoise(src): dst = src.copy() num = 1000 # 1000个噪声点 ndim = np.ndim(src) row, col = np.shape(src)[0:2] for i in range(num): x = np.random.randint(0, row) # 随机生成噪声点位置 y = np.random.randint(0, col) indicator = np.random.randint(0, 2) # 灰度图像 if ndim == 2: if indicator == 0: dst[x, y] = 0 else: dst[x, y] = 255 # 彩色图像 elif ndim == 3: if indicator == 0: dst[x, y, :] = 0 else: dst[x, y, :] = 255 return dst 高斯噪声: def addGaussianNoise(image,sigma): mean = 0.0 row, col ,ch= image.shape gauss = np.random.normal(mean, sigma, (row, col,ch)) gauss = gauss.reshape(row, col,ch) noisy = image + gauss return noisy.astype(np.uint8)

实验五 傅立叶变换与频率域滤波

实验五傅立叶变换与频率域滤波 一、实验目的 1.理解傅立叶变换; 2.熟悉MATLAB中各种傅立叶变换相关的函数; 3.掌握频域滤波的步骤以及MATLAB的实现方法; 4.理解频域滤波器与空域滤波器的关系。 二、实验内容及步骤 1、傅立叶变换及傅立叶反变换 (1)傅立叶变换相关函数 MATLAB提供了几个和傅立叶变换相关的函数。其说明如下: F=fft2(f); 二维傅立叶变换 real(F); 傅立叶变换的实部 imag(F); 傅立叶变换的虚部 abs(F); 获得傅立叶频谱 fftshift(F); 将变换的原点移至频率矩形的中心 ifft2(F); 二维傅立叶反变换 iffshift(F); 反中心平移 (2)傅立叶频谱 傅立叶频谱反映了图像的频率成分。幅值谱的能量往往集中于中低频部分,并且中低频部分的能量反映了图像的实体。图像的噪声往往集中于高频部分。 下面的例子对课本中123页的图Fig4.03(a).jpg进行傅立叶变换,得到傅立叶频谱。 例:x=imread('Fig4.03(a).jpg'); F=fft2(x); %二维傅立叶变换 FP=sqrt(real(F).^2+imag(F).^2); %计算傅立叶频谱,或者使用abs()函数 imshow(uint8(FP)) %显示傅立叶频谱,直流成分分布在四个边角 figure(2); imshow(uint8(fftshift(FP))) % 中心平移的频谱图

思考题1:对课本125页的图Fig4.04(a).jpg进行傅立叶变换,得到傅立 叶频谱,为清楚地显示该谱,将其进行对数变换处理,增强其灰度细节。结果类似于图5_1。 图5_1 Fig4.04(a)的傅立叶谱 x=imread('Fig4.04(a).jpg'); F=fft2(x); FP=sqrt(real(F).^2+imag(F).^2); Image=log(1+double(fftshift(FP))); imshow(x); figure(2);imshow(Image,[]); (3)傅立叶变换对

频域图像处理和图像恢复(MATLAB实验)

实验项目名称:频域图像处理和图像恢复 (所属课程:图像和视频处理) 学院:专业班级:姓名:学号:实验日期:实验地点:指导教师: 本实验项目成绩:教师签字:日期:__________________ 1.实验目的 (1) 掌握频域图像处理的基本方法。 (2) 掌握图像的傅里叶变换。 (3) 掌握空域和频域图像处理的联系与区别。 (4) 掌握图像恢复的相关理论和方法。 2.实验内容 (1)显示图像’’和’’傅立叶变换的傅立叶谱图像。 I=imread(''); Id=im2double(I); I_dft=fft2(Id); figure,imshow(Id),title('Original Image'); figure,imshow(log(1+abs(fftshift(I_dft))),[]),... title('FT of original image');

I=imread(''); Id=im2double(I); I_dft=fft2(Id); figure,imshow(Id),title('Original Image'); figure,imshow(log(1+abs(fftshift(I_dft))),[]),... title('FT of original image');

(2) 对图像’’采用理想低通滤波器和理想高通滤波器进行处理,分析不同的滤波器得到的结果; 低通R1=35: I=imread(''); Id=im2double(I); I_dft=fft2(Id); [M,N]=size(I);

dist=distmatrix(M,N); figure,mesh(fftshift(dist)),title('Distance Matrix'); H=zeros(M,N); radius=35; ind=dist<=radius; H(ind)=1; Hd=double(H); DFT_filt=Hd .* I_dft; I2=real(ifft2(DFT_filt)); figure,imshow(log(1+abs(fftshift(DFT_filt))),[]),... title('Filtered FT'); figure,imshow(I2),title('Filtered Image'); R2=80:

(实验四)数字图像 DFT 及频域滤波

实验报告 实验课程:光电图像处理 姓名: 学号: 实验地点:信软楼309 指导老师: 实验时间:2016年 4 月 7日

一.实验名称:(实验四)数字图像DFT及频域滤波 二.实验目的 1. 了解数字图像各种正交变换的概念、原理和用途。 2. 熟练掌握数字图像的 DFT/DCT 的原理、方法和实现流程,熟悉两种变换的性质,并能对数字图像 DFT 及 DCT 的结果进行必要解释。 3.熟悉和掌握利用 MATLAB 工具进行数字图像 FFT 及 DCT 的基本步骤、MATLAB函数使用及具体变换的处理流程,并能根据需要进行必要的频谱分析和可视化显示。 4. 熟悉利用空域滤波器构建对应的频域滤波器的方法和关键步骤。 5. 熟悉和掌握几种典型的频域低通滤波器及高通滤波器的原理、特性和作用。 6. 搞清空域图像处理与频域图像处理的异同,包括处理流程、各自的优势等。掌握频域滤波的基本原理和基本流程,并能编写出相应的程序代码。 三.实验原理 1.模型图像的FFT 实验: 原理:傅里叶变换提供了另外一个角度来观察图像,可以将图像从灰度分布转化为频率分布来观察图像的特征。FFT主要是应用公式: 进行空间域与频率域的相互转换. 程序流程图:

2.实际图像的FFT 实验: 原理:傅里叶变换提供了另外一个角度来观察图像,可以将图像从灰度分布转化为频率分布来观察图像的特征。其中对于频谱反中心化的处理是通过 I=fftshift(I)来实现的,FFT主要是应用公式: 进行空域与频域的转换. 程序流程图: 3.数字图像的频域滤波处理: 原理:图像的频域表征了图像中灰度变化剧烈程度的指标,是灰度在平面空间上 的梯度。图像的边缘部分是突变部分,变化较快,因此反映在频域上是高频 分量;图像的大部分噪声是高频部分;而图像中大部分平缓的灰度变化部分 则为低频分量,再通过构建的高通与低通滤波器与FFT变换后的频谱函数乘 积的滤波处理,显示出处理后的图像. 程序流程图: (1)

用逆滤波和维纳滤波进行图像复原

用逆滤波和维纳滤波进行图像复原 在图像的获取、传输以及记录保存过程中,由于各种因素,如成像设备与目标物体的相对运动,大气的湍流效应,光学系统的相差,成像系统的非线性畸变,环境的随机噪声等原因都会使图像产生一定程度的退化,图像退化的典型表现是图像出现模糊、失真,出现附加噪声等。由于图像的退化,使得最终获取的图像不再是原始图像,图像效果明显变差。为此,要较好地显示原始图像,必须对退化后的图像进行处理,恢复出真实的原始图像,这一过程就称为图像复原. 图像复原技术是图像处理领域一类非常重要的处理技术,主要目的就是消除或减轻在图像获取及传输过程中造成的图像质量下降即退化现象,恢复图像的本来面目. 图像复原的过程是首先利用退化现象的某种先验知识,建立退化现象的数学模型,然后再根据退化模型进行反向的推演运算,以恢复原来的景物图像. 一、 实验目的 1了解图像复原模型 2了解逆滤波复原和维纳滤波复原 3掌握维纳滤波复原、逆滤波的Matlab 实现 二、实验原理 1、逆滤波复原 如果退化图像为(),g x y ,原始图像为(),f x y ,在不考虑噪声的情况下,其退化模型可用下式表示 ()()(),,,g x y f x y d d αβδαβαβ +∞+∞ -∞ -∞ =--? ? (12-25) 由傅立叶变换的卷积定理可知有下式成立 ()()(),,,G u v H u v F u v = (12-26) 式中,(),G u v 、(),H u v 、(),F u v 分别是退化图像(),g x y 、点扩散函数(),h x y 、原始图像(),f x y 的傅立叶变换。所以 ()()()()11,,,,G u v f x y F F u v F H u v --??==???????? (12—27) 由此可见,如果已知退化图像的傅立叶变换和系统冲激响应函数(“滤被”传递函数),则可以求得原图像的傅立叶变换,经傅立叶反变换就可以求得原始图像 (),f x y ,其中(),G u v 除以(),H u v 起到了反向滤波的作用。这就是逆滤波复原的

实验三数字图像的空间域滤波讲解

实验三、四数字图像的空间域滤波和频域滤波 1.实验目的 1.掌握图像滤波的基本定义及目的。 2.理解空间域滤波的基本原理及方法。 3.掌握进行图像的空域滤波的方法。 4.掌握傅立叶变换及逆变换的基本原理方法。 5.理解频域滤波的基本原理及方法。 6.掌握进行图像的频域滤波的方法。 2.实验基本原理 1.空间域增强 空间域滤波是在图像空间中借助模板对图像进行领域操作,处理图像每一个像素的取值都是根据模板对输入像素相应领域内的像素值进行计算得到的。空域滤波基本上是让图像在频域空间内某个范围的分量受到抑制,同时保证其他分量不变,从而改变输出图像的频率分布,达到增强图像的目的。 空域滤波一般分为线性滤波和非线性滤波两类。线性滤波器的设计常基于对傅立叶变换的分析,非线性空域滤波器则一般直接对领域进行操作。各种空域滤波器根据功能主要分为平滑滤波器和锐化滤波器。平滑可用低通来实现,平滑的目的可分为两类:一类是模糊,目的是在提取较大的目标前去除太小的细节或将目标内的小肩端连接起来;另一类是消除噪声。锐化可用高通滤波来实现,锐化的目的是为了增强被模糊的细节。结合这两种分类方法,可将空间滤波增强分为四类: 线性平滑滤波器(低通) 非线性平滑滤波器(低通) 线性锐化滤波器(高通) 非线性锐化滤波器(高通) 空间滤波器都是基于模板卷积,其主要工作步骤是: 1)将模板在图中移动,并将模板中心与图中某个像素位置重合; 2)将模板上的系数与模板下对应的像素相乘; 3)将所有乘积相加; 4)将和(模板的输出响应)赋给图中对应模板中心位置的像素。 2.平滑滤波器 1)线性平滑滤波器 线性低通平滑滤波器也称为均值滤波器,这种滤波器的所有系数都是正数,对3×3 的模板来说,最简单的是取所有系数为1,为了保持输出图像任然在原来图像的灰度值范围内,模板与象素邻域的乘积都要除以9。 MATLAB 提供了fspecial 函数生成滤波时所用的模板,并提供filter2 函数用指定的滤

实验四 噪声图像的复原

实验四噪声图像的复原 一、运动模糊与维纳滤波 1.实验方式 通过对图像添加运动模糊模拟实际拍照的延时效应,并且利用维纳滤波方式对图像进行滤波,观察维纳滤波对运动模糊的过滤效果,并对照其他几种滤波方式对运动模糊的影响。 实验代码: close all;clear all;clc; i=imread('E:\Matlabimage\book.jpg'); I=rgb2gray(i); I = im2double(I); LEN = 21; THETA = 11; PSF = fspecial('motion', LEN, THETA); blurred = imfilter(I, PSF, 'conv', 'circular'); wnr2 = deconvwnr(blurred, PSF); subplot(2,2,1);imshow(i);title('原图') subplot(2,2,2);imshow(I);title('灰度图') subplot(2,2,3);imshow(blurred);title('运动模糊图像') subplot(2,2,4);imshow(wnr2);title('恢复图像') 代码解释:程序首先读取一幅JPG格式的彩色图片,然后将此图片转化为双精度灰度图片,然后产生运动模糊算子PSF,其中参数LEN和THETA表示摄像物体逆时针方向一THETA方向运动了LEN个像素,并且通过imfilter实现运动模糊效果,将返回的结果放入blurred,然后通过deconvwnr实现滤波,并将滤波前后的图像显示出来。 实验结果:

几种滤波方式对运动模糊的滤除效果对比: 运动模糊+维纳滤波:运动模糊+中值滤波: 运动模糊+平均值滤波 由对比结果可知维纳滤波对运动模糊有很好的处理效果。 二、利用MATLAB实现频域滤波的程序 1、频域sobel滤波 实验根据公式设计高通或低通滤波器对图像进行处理,并观察频域滤波的效果实验代码: close all;clear all;clc; f=imread('cameraman.tif'); F=fft2(f); %对图像进行傅立叶变换 %对变换后图像进行对数变化,并对其坐标平移,使其中心化 S=fftshift(log(1+abs(F))); S=gscale(S); %将频谱图像标度在0-256的范围内 figure,imshow(S) %显示频谱图像 h=fspecial('sobel'); %产生空间‘sobel’模版 figure;freqz2(h) %查看相应频域滤波器的图像 PQ=paddedsize(size(f)); %产生滤波时所需大小的矩阵 H=freqz2(h,PQ(1),PQ(2)); %产生频域中的‘sobel’滤波器

频域滤波

频域滤波 主要内容: 一.回顾空间滤波 二.傅里叶变换 三.傅里叶变换的性质 四.频域滤波 一.回顾空间滤波 “滤波”:接受或拒绝一定的频率分量,来源频域处理。分空间滤波和频率滤波(即对图像的频谱进行滤波)。 空间滤波:就是滤波器和图像做卷积的结果。 平滑滤波器滤波器: 锐化滤波器:

二. 傅里叶变换 1.由傅里叶级数推倒的连续傅里叶变换 设周期信号为()x t ,其周期是T ,频率1 T σ =,角频率2ωπσ=,则 将()x t 展成指数形式的Fourier 级数如下: ()in t n n x t X e ω ∞ =-∞ = ∑, 其中 /2 /2 1()T in t n T X x t e dt T ω--=? 两边同时乘以T ,得到 /2 /2 ()T in t n T X T x t e dt ω--= ? 对于非周期信号,重复周期T →∞,离散频率n ω就变成连续频率ω了。在这种极限情况下,2n X πω趋于有限值,且变成一个连续函数,记为()F ω. ()lim ()i t n T X X T x t e dt ωω+∞ -→∞ -∞ == ? (Fourier 变换) 1 ()()2i t x t X e d ωωωπ +∞ -∞ = ? (Fourier 逆变换) 若用频率σ代替角频率2ωπσ=,则有

2()()i t X x t e dt πσσ+∞ --∞ = ? ,σ 为频率 2()()i t x t X e d πσσσ +∞ -∞ = ? 由()F μ表示连续变量t 的连续函数()f t 的傅里叶变换由下式定义: 2()()j t F f t e dt πμμ∞--∞ =? 相反,给定()F μ,通过傅里叶逆变换可以获得()f t ,傅里叶逆变换定义如下: 2()()j t f t F e d πμμμ ∞ -∞=? 上述两式称为傅里叶变换对。 例: 看一个简单函数的傅里叶变换: 1,11()0,t f t -≤≤?=?? 其他 ,将其进行傅里叶变换121sin(2)()1j t F e dt πμπμμπμ--=?=? 2.离散傅里叶变换(DFT ) 离散傅里叶变换的公式: 1 2/0()(),0,1,2,...,1 M j x M x F f x e M πμμμ--===-∑ 原函数()f t 原函数的傅里叶变换()F μ

相关文档
最新文档