图像的傅里叶变换
图像傅里叶变换

图像傅里叶变换
傅里叶变换(Fourier Transformation)是一种重要的数学工具,用于分析正弦波、矩形波和其他不同类型的函数。
最初,傅里叶变换
是用来解决热力学方程的,但是后来发展成多种多样的应用,其中之
一就是图像处理。
图像傅里叶变换是把图像中的所有信息转换为一组与波频成正比
的数字。
它通过傅里叶公式,把一副图像分割成它的频率和振幅组成
的多个部分,每一部分都表示图像中的一个特征。
图像傅里叶变换的
最重要的应用之一就是进行图像压缩,在这种压缩技术中,可以利用
傅里叶变换将某些低频成分合并,而抛弃某些高频成分,进而减小图
像的数据量,而且没有太多损失。
另外,图像傅里叶变换还可以用来
识别图像中的不同特征,可以用于图像检索、图像处理、图像分类等。
图像傅里叶变换是解决图像处理问题的一种重要手段,它能够使
我们提取图像像素、压缩图像数据和检测图像特征的能力大大提高,
已成为当今图像处理的重要工具。
图像处理之傅里叶变换

图像处理之傅⾥叶变换图像处理之傅⾥叶变换⼀、傅⾥叶变换傅⾥叶变换的作⽤:⾼频:变化剧烈的灰度分量,例如边界低频:变化缓慢的灰度分量,例如⼀⽚⼤海滤波:低通滤波器:只保留低频,会使得图像模糊⾼通滤波器:只保留⾼频,会使得图像细节增强OpenCV:opencv中主要就是cv2.dft()和cv2.idft(),输⼊图像需要先转换成np.float32 格式。
得到的结果中频率为0的部分会在左上⾓,通常要转换到中⼼位置,可以通过shift变换来实现。
cv2.dft()返回的结果是双通道的(实部,虚部),通常还需要转换成图像格式才能展⽰(0,255)。
import numpy as npimport cv2from matplotlib import pyplot as pltimg = cv2.imread('lena.jpg',0)img_float32 = np.float32(img)dft = cv2.dft(img_float32, flags = cv2.DFT_COMPLEX_OUTPUT)dft_shift = np.fft.fftshift(dft)# 得到灰度图能表⽰的形式magnitude_spectrum = 20*np.log(cv2.magnitude(dft_shift[:,:,0],dft_shift[:,:,1]))plt.subplot(121),plt.imshow(img, cmap = 'gray')plt.title('Input Image'), plt.xticks([]), plt.yticks([])plt.subplot(122),plt.imshow(magnitude_spectrum, cmap = 'gray')plt.title('Magnitude Spectrum'), plt.xticks([]), plt.yticks([])plt.show()import numpy as npimport cv2from matplotlib import pyplot as pltimg = cv2.imread('lena.jpg',0)img_float32 = np.float32(img)dft = cv2.dft(img_float32, flags = cv2.DFT_COMPLEX_OUTPUT) #时域转换到频域dft_shift = np.fft.fftshift(dft) #将低频部分拉到中⼼处rows, cols = img.shapecrow, ccol = int(rows/2) , int(cols/2) #确定掩膜的中⼼位置坐标# 低通滤波mask = np.zeros((rows, cols, 2), np.uint8)mask[crow-30:crow+30, ccol-30:ccol+30] = 1# IDFTfshift = dft_shift*mask #去掉⾼频部分,只显⽰低频部分f_ishift = np.fft.ifftshift(fshift) #将低频部分从中⼼点处还原img_back = cv2.idft(f_ishift) #从频域逆变换到时域img_back = cv2.magnitude(img_back[:,:,0],img_back[:,:,1]) #该函数通过实部和虚部⽤来计算⼆维⽮量的幅值plt.subplot(121),plt.imshow(img, cmap = 'gray')plt.title('Input Image'), plt.xticks([]), plt.yticks([])plt.subplot(122),plt.imshow(img_back, cmap = 'gray')plt.title('Result'), plt.xticks([]), plt.yticks([])plt.show()img = cv2.imread('lena.jpg',0)img_float32 = np.float32(img)dft = cv2.dft(img_float32, flags = cv2.DFT_COMPLEX_OUTPUT) dft_shift = np.fft.fftshift(dft)rows, cols = img.shapecrow, ccol = int(rows/2) , int(cols/2) # 中⼼位置# ⾼通滤波mask = np.ones((rows, cols, 2), np.uint8)mask[crow-30:crow+30, ccol-30:ccol+30] = 0# IDFTfshift = dft_shift*maskf_ishift = np.fft.ifftshift(fshift)img_back = cv2.idft(f_ishift)img_back = cv2.magnitude(img_back[:,:,0],img_back[:,:,1]) plt.subplot(121),plt.imshow(img, cmap = 'gray')plt.title('Input Image'), plt.xticks([]), plt.yticks([])plt.subplot(122),plt.imshow(img_back, cmap = 'gray')plt.title('Result'), plt.xticks([]), plt.yticks([])plt.show()。
图像的二维傅里叶变换

图像傅立叶变换(二维傅立叶变换fourier, 二维DFT, 2d-fft)的原理和物理意义图像傅立叶变换图像的傅立叶变换,原始图像由N行N列构成,N必须是基2的,把这个N*N个包含图像的点称为实部,另外还需要N*N个点称为虚部,因为FFT是基于复数的,如下图所示:计算图像傅立叶变换的过程很简单:首先对每一行做一维FFT,然后对每一列做一维FFT。
具体来说,先对第0行的N个点做FFT(实部有值,虚部为0),将FFT输出的实部放回原来第0行的实部,FFT输出的虚部放回第0行的虚部,这样计算完全部行之后,图像的实部和虚部包含的是中间数据,然后用相同的办法进行列方向上的FFT变换,这样N*N的图像经过FFT得到一个N*N的频谱。
下面展示了一副图像的二维FFT变换:频域中可以包含负值,图像中灰色表示0,黑色表示负值,白色表示正值。
可以看到4个角上的黑色更黑,白色更白,表示其幅度更大,其实4个角上的系数表示的是图像的低频组成部分,而中心则是图像的高频组成部分。
除此以外,FFT的系数显得杂乱无章,基本看不出什么。
将上述直角坐标转换为极坐标的形式,稍微比较容易理解一点,幅度中4个角上白色的区域表示幅度较大,而相位中高频和低频基本看不出什么区别来。
上述以一种不同的方法展示了图像频谱,它将低频部分平移到了频谱的中心。
这个其实很好理解,因为经2D-FFT的信号是离散图像,其2D-FFT的输出就是周期信号,也就是将前面一张图周期性平铺,取了一张以低频为中心的图。
将原点放在中心有很多好处,比如更加直观更符合周期性的原理,但在这节中还是以未平移之前的图来解释。
行N/2和列N/2将频域分成四块。
对实部和幅度来说,右上角和左下角成镜像关系,左上角和右下角也是镜像关系;对虚部和相位来说,也是类似的,只是符号要取反,这种对称性和1维傅立叶变换是类似的,你可以往前看看。
为简单起见,先考虑4*4的像素,右边是其灰度值,对这些灰度值进行2维fft变换。
傅里叶变换在数字图像处理中的应用课件

• 由欧拉公 式
f (t)
F (n1 )e jn1t
• 其中 n
F (0) a0
F (n1 )
1 2
(an
jbn )
引入了负频率
F (n1 )
1 2
(an
jbn )
10
非周期信号的频谱分析
当周期信号的周期T1无限大时,就演变成 了非周期信号的单脉冲信号
T1
频率也变成连续变量
1
2
T1
0 d
n1
11
非周期函数傅立叶变换分析式
F (w) f (t )e jwt dt f(t) Nhomakorabea1
2
F ().e jtd
频谱演变的定性观察
1
2
T1
F (n1)
-T/2
T/2
F (n1) 1
F (n1 )
-T/2
T/2
1
2
2
13
三.从物理意义来讨论FT
(a) F(ω)是一个密度函数的概念 (b) F(ω)是一个连续谱 (c) F(ω)包含了从零到无限高
傅里叶变换
连续时间信号 的傅里叶变换
号周 期 性 信
信非 号周
期 性
离散时间信号 的傅里叶变换
号周 期 性 信
信非 号周
期
性
连续函数的 傅立叶变换
一、三角函数的傅里叶级数:
f1(t) a0 (an cos n1t bn sin n1t) n1
直流 分量
基波分量 n =1
谐波分量 n>1
N 1
j 2 mn
X (m) x(n)e N , m 0,1, 2,3, 4,...N 1
图像处理中的傅里叶变换

FFT是DFT的一种高效实现,它广 泛应用于信号处理、图像处理等 领域。
频域和时域的关系
频域
频域是描述信号频率特性的区域,通过傅里叶变换可以将 时域信号转换为频域信号。在频域中,信号的频率成分可 以被分析和处理。
时域
时域是描述信号时间变化的区域,即信号随时间的变化情 况。在时域中,信号的幅度和时间信息可以被分析和处理。
其中n和k都是整数。
计算公式
X(k) = ∑_{n=0}^{N-1} x(n) * W_N^k * n,其中W_N=exp(-
2πi/N)是N次单位根。
性质
DFT是可逆的,即可以通过DFT 的反变换将频域信号转换回时域
信号。
快速傅里叶变换(FFT)
定义
快速傅里叶变换(FFT)是一种高 效计算DFT的算法,它可以将DFT 的计算复杂度从O(N^2)降低到 O(NlogN)。
通过傅里叶变换,我们可以方便地实现图像的滤波操作,去除噪声或突出某些特 征。同时,傅里叶变换还可以用于图像压缩,通过去除高频成分来减小图像数据 量。此外,傅里叶变换还可以用于图像增强和图像识别,提高图像质量和识别准 确率。
PART 02
傅里叶变换的基本原理
离散傅里叶变换(DFT)
定义
离散傅里叶变换(DFT)是一种 将时域信号转换为频域信号的方 法。它将一个有限长度的离散信 号x(n)转换为一个复数序列X(k),
傅里叶变换的物理意义是将图像中的每个像素点的灰度值表 示为一系列正弦波和余弦波的叠加。这些正弦波和余弦波的 频率和幅度可以通过傅里叶变换得到。
通过傅里叶变换,我们可以将图像中的边缘、纹理等高频成 分和背景、平滑区域等低频成分分离出来,从而更好地理解 和处理图像。
6.图像的傅立叶变换 - 数字图像处理实验报告

计算机与信息工程学院验证性实验报告一、实验目的1了解图像变换的意义和手段;2熟悉傅立叶变换的基本性质; 3熟练掌握FFT 变换方法及应用; 4通过实验了解二维频谱的分布特点;5通过本实验掌握利用MATLAB 编程实现数字图像的傅立叶变换。
6评价人眼对图像幅频特性和相频特性的敏感度。
二、实验原理1 应用傅立叶变换进行图像处理傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。
通过实验培养这项技能,将有助于解决大多数图像处理问题。
对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。
2 傅立叶(Fourier )变换的定义对于二维信号,二维Fourier 变换定义为:2()(,)(,)j ux uy F u v f x y e dxdy π∞∞-+-∞-∞=⎰⎰逆变换:2()(,)(,)j ux uy f x y F u v e dudv π∞∞+-∞-∞=⎰⎰二维离散傅立叶变换为:112()001(,)(,)i k N N j mn N Ni k F m n f i k eNπ---+===∑∑逆变换:112()001(,)(,)i k N N j mn N Nm n f i k F m n eNπ--+===∑∑图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见参考书目,有关傅立叶变换的快速算法的程序不难找到。
实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。
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); %显示原图像的频谱三、实验步骤1.将图像内容读入内存;2.用Fourier变换算法,对图像作二维Fourier变换;3.将其幅度谱进行搬移,在图像中心显示;4.用Fourier系数的幅度进行Fourier反变换;5.用Fourier系数的相位进行Fourier反变换;6.比较4、5的结果,评价人眼对图像幅频特性和相频特性的敏感度。
图像处理与傅里叶变换原理与运用

图像处理与傅里叶变换1背景傅里叶变换是一个非常复杂的理论,我们在图像处理中集中关注于其傅里叶离散变换离散傅立叶变换(Discre t e Fourie r Transf o rm) 。
1.1离散傅立叶变换图象是由灰度(R GB )组成的二维离散数据矩阵,则对它进行傅立叶变换是离散的傅立叶变换。
对图像数据f (x,y)(x=0,1,… ,M-1; y=0,1,… ,N-1)。
则其离散傅立叶变换定义可表示为:式中,u=0,1,…, M-1;v= 0,1,…, N-1其逆变换为式中,x=0,1,…, M-1;y= 0,1,…, N-1在图象处理中,一般总是选择方形数据,即M=N影像f(x,y)的振幅谱或傅立叶频谱: 相位谱: 能量谱(功率谱) )1(2exp ),(1),(1010∑∑-=-=⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛+-=M x N y N vy M ux i y x f MN v u F π)2(2exp ),(1),(1010∑∑-=-=⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛+=M u N v N vy M ux i v u F MN y x f π),(),(),(22v u I v u R v u F +=[]),(/),(),(v u R v u I arctg v u =ϕ),(),(),(),(222v u I v u R v u F v u E +==1.2快速傅里叶变化可分离性的优点是二维的傅立叶变换或逆变换由两个连续的一维傅立叶变换变换来实现,对于一个影像f (x,y),可以先沿着其每一列求一维傅立叶变换,再对其每一行再求一维变换正变化逆变换 由于二维的傅立叶变换具有可分离性,故只讨论一维快速傅立叶变换。
正变换逆变换由于计算机进行运算的时间主要取决于所用的乘法的次数。
按照上式进行一维离散由空间域向频率域傅立叶变换时,对于N 个F ∑∑∑∑-=-=-=-=⎥⎦⎤⎢⎣⎡⨯⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡+=10101010)(2exp ),(1)(2exp ),(1)(2exp ),(1),(N v N u N u N v N vy i v u F N N ux i v u F N N vy ux i v u F NN y x f πππ∑-=⎥⎦⎤⎢⎣⎡-=102exp )(1)(N x N ux i x f N u F π∑∑∑∑-=-=-=-=⎥⎦⎤⎢⎣⎡-⨯⎥⎦⎤⎢⎣⎡-=⎥⎦⎤⎢⎣⎡+-=10101010)(2exp ),(1)(2exp ),(1)(2exp ),(1),(N y N x N x N y N vy i y x f N N ux i y x f NN vy ux i y x f NN v u F πππ∑-=⎥⎦⎤⎢⎣⎡=102exp )(1)(N u N ux i u F N x f π(u)值,中的每一个都要进行N 次运算,运算时间与N 2成正比。
图像的傅里叶变换

图像的傅里叶变换
图像的傅里叶变换是将图像的像素用时间或频率的形式表示的一种变换方式。
一般来说,图像的每个像素点都可以用其周围的邻居来描述,而傅里叶变换可以对图像中所有的邻居进行变换,有效地减少图像的深度和宽度,使图像更轻巧。
傅里叶变换的一个重要用途便是图像分析和处理,它可以将复杂的信息减缩到更小的空间中,从而使图像变得更容易理解。
比如,使用傅里叶变换可以有效地抽取图像中最重要的特征,例如颜色、对比度、形状等。
此外,傅里叶变换还可以用于图像压缩,通过傅里叶变换可以把复杂的信息转换为高频信号和低频信号,通过减少低频信号可以压缩图像的体积,但这样做不会影响图像的整体清晰度,而是减少了细节的某些程度上。
总而言之,傅里叶变换是一种对图像进行分析和处理的非常有效的方法,可以有效地提取图像中最重要的特征,可以大大减少图像的深度和宽度,并且可以用于图像压缩以及图像处理等任务中,从而大大改善图像的处理效果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三 图像的傅里叶变换
一、 实验目的
1.了解图像变换的意义和手段;
2.掌握FFT 变换方法及应用;
3.通过实验了解二维频谱的分布特点;
4.通过本实验掌握利用MATLAB 编程实现数字图像的傅立叶变换。
二、 实验原理
1 应用傅立叶变换进行图像处理
傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、
电子放大器、卷积滤波器、噪音和显示点等的作用。
通过实验培养这项技能,将有助于解决
大多数图像处理问题。
对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在
学习和掌握博里叶变换上是很有必要的。
2 傅立叶(Fourier )变换的定义
对于二维信号,二维Fourier 变换定义为:
2()(,)(,)j ux uy F u v f x y e dxdy π∞∞
-+-∞-∞=
⎰⎰
逆变换: 2()(,)(,)j ux uy f x y F u v e dudv π∞∞
+-∞-∞=
⎰⎰
二维离散傅立叶变换为: 11
2()00
1(,)(,)i k N N j m n N N i k F m n f i k e N π---+===∑∑ 逆变换:
11
2()00
1(,)(,)i k N N j m n N N m n f i k F m n e N π--+===∑∑
三、 实验步骤及结果
步骤:
1将图像内容读入内存;
2用Fourier 变换算法,对图像作二维Fourier 变换;
3将其幅度谱进行搬移,在图像中心显示;
4用Fourier 系数的幅度进行Fourier 反变换;
5用Fourier系数的相位进行Fourier反变换;
6比较4、5的结果,评价人眼对图像幅频特性和相频特性的敏感度。
7记录和整理实验报告。
结果:
四、程序源代码
clear;
I=imread('1.gif');
I=rgb2gray(I);
subplot(3,3,1);
imshow(I);
title('1.gif');
E=fft2(double(I));
sfftI=fftshift(E); %正半轴部分和负半轴部分的图像分别关于各自的中心对称RR=real(sfftI);
II=imag(sfftI);
A=sqrt(RR.^2+II.^2);
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225 ;
subplot(3,3,2);
imshow(A);
title('原图频谱');
FE=abs(fftshift(E)); subplot(3,3,3);
imshow(log(FE+1),[]);%自然对数title('幅度谱');
PE=angle(E); %向量E的相角subplot(3,3,4);
imshow(PE);
title('图像相位谱');
IFE=ifft2(FE);
subplot(3,3,5);
imshow(log(1+abs(IFE)),[]); title('幅度谱的反变换');
IPE=ifft2(exp(j*PE));
subplot(3,3,6);
imshow(abs(IPE),[]);
title('相位谱的反变换');
IE=ifft2(E)/225;
subplot(3,3,7);
imshow(IE);
title('原图频谱反变换');。