第5章 图像变换-傅里叶变换
- 格式:ppt
- 大小:11.77 MB
- 文档页数:123
实验三 图像的傅里叶变换一、 实验目的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 π∞∞+-∞-∞=⎰⎰二维离散傅立叶变换为: 112()001(,)(,)i k N N j m n N N i k F m n f i k e N π---+===∑∑ 逆变换:112()001(,)(,)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('');I=rgb2gray(I);subplot(3,3,1);imshow(I);title('');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('原图频谱反变换');。
图像的傅立叶变换,原始图像由N行N列构成,N必须是基2的,把这个N*N个包含图像的点称为实部,另外还需要N*N个点称为虚部,因为FFT是基于复数的,如下图所示:(//实数DFT将时域内的N个点变换为频域中两组各N/2+1个点(分别对应实部和虚部))计算图像傅立叶变换的过程很简单:首先对每一行做一维FFT,然后对每一列做一维FFT。
具体来说,先对第0行的N个点做FFT(实部有值,虚部为0),将FFT输出的实部放回原来第0行的实部,FFT输出的虚部放回第0行的虚部,这样计算完全部行之后,图像的实部和虚部包含的是中间数据,然后用相同的办法进行列方向上的FFT变换,这样N*N 的图像经过FFT得到一个N*N的频谱。
下面展示了一副图像的二维FFT变换:频域中可以包含负值,图像中灰色表示0,黑色表示负值,白色表示正值。
可以看到4个角上的黑色更黑,白色更白,表示其幅度更大,其实4个角上的系数表示的是图像的低频组成部分,而中心则是图像的高频组成部分。
除此以外,FFT的系数显得杂乱无章,基本看不出什么。
将上述直角坐标转换为极坐标的形式,稍微比较容易理解一点,幅度中4个角上白色的区域表示幅度较大,而相位中高频和低频基本看不出什么区别来。
上述以一种不同的方法展示了图像频谱,它将低频部分平移到了频谱的中心(//MATLAB中实现函数fftshift)。
这个其实很好理解,因为经2D-FFT的信号是离散图像,其2D-FFT的输出就是周期信号,也就是将前面一张图周期性平铺,取了一张以低频为中心的图。
将原点放在中心有很多好处,比如更加直观更符合周期性的原理,但在这节中还是以未平移之前的图来解释。
行N/2和列N/2将频域分成四块。
对实部和幅度来说,右上角和左下角成镜像关系,左上角和右下角也是镜像关系;对虚部和相位来说,也是类似的,只是符号要取反(//共轭?),这种对称性和1维傅立叶变换是类似的,你可以往前看看。
为简单起见,先考虑4*4的像素,右边是其灰度值,对这些灰度值进行2维fft变换。
5.图像的频域增强及傅里叶变换傅立叶变换在图像处理中有非常非常的作用。
因为不仅傅立叶分析涉及图像处理的很多方而,傅立叶的改进算法,比如离散余弦变换,gabor与小波在图像处理中也有重要的分量。
印象中,傅立叶变换在图像处理以下几个话题都有重要作用:1.图像增强与图像去噪绝大部分噪音都是图像的高频分呈:,通过低通滤波器来滤除髙频一一噪声;边缘也是图像的髙频分量,可以通过添加髙频分量来增强原始图像的边缘;2•图像分割Z边缘检测提取图像高频分量3.图像特征提取:形状特征:傅里叶描述子纹理特征:直接通过傅里叶系数来汁算纹理特征英他特征:将提取的特征值进行傅里叶变换来使特征具有平移、伸缩、旋转不变性4.图像压缩可以直接通过傅里叶系数来压缩数据:常用的离散余弦变换是傅立叶变换的实变换:傅立叶变换傅里叶变换是将时域信号分解为不同频率的正弦信号或余弦函数叠加之和。
连续情况下要求原始信号在一个周期内满足绝对可积条件。
离散情况下,傅里叶变换一左存在。
冈萨雷斯版<图像处理>里而的解释非常形象:一个恰当的比喻是将傅里叶变换比作一个玻璃棱镜。
棱镜是可以将光分解为不同颜色的物理仪器,每个成分的颜色由波长(或频率)来决泄。
傅里叶变换可以看作是数学上的棱镜,将函数基于频率分解为不同的成分。
当我们考虑光时, 讨论它的光谱或频率谱。
同样,傅立叶变换使我们能通过频率成分来分析一个函数。
傅立叶变换有很多优良的性质。
比如线性,对称性(可以用在计算信号的傅里叶变换里而);时移性:函数在时域中的时移,对应于其在频率域中附加产生的相移,而幅度频谱则保持不变;频移性:函数在时域中乘以』wt,可以使整个频谱搬移W U这个也叫调制左理,通讯里而信号的频分复用需要用到这个特性(将不同的信号调制到不同的频段上同时传输): 卷积泄理:时域卷积等于频域乘枳:时域乘积等于频域卷积(附加一个系数)。
(图像处理里而这个是个重点)信号在频率域的表现在频域中,频率越大说明原始信号变化速度越快:频率越小说明原始信号越平缓。
图像的频率不同频率信息在图像结构中有不同的作用。
图像的主要成分是低频信息,它形成了图像的基本灰度等级,对图像结构的决定作用较小;中频信息决定了图像的基本结构,形成了图像的主要边缘结构;高频信息形成了图像的边缘和细节,是在中频信息上对图像内容的进一步强化,即高频信息决定图像的分辨率与清晰度。
用傅里叶变换可以得到图像的频谱图:上面的图像左边是原图,右边是频谱图图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。
如:大面积的沙漠在图像中是一片灰度变化缓慢的区域,对应的频率值很低;而对于地表属性变换剧烈的边缘区域在图像中是一片灰度变化剧烈的区域,对应的频率值较高。
对图像而言,图像的边缘部分是突变部分,变化较快,因此反应在频域上是高频分量;图像的噪声大部分情况下是高频部分;图像平缓变化部分则为低频分量。
也就是说,傅立叶变换提供另外一个角度来观察图像,可以将图像从灰度分布转化到频率分布上来观察图像的特征。
图像进行二维傅立叶变换得到频谱图,就是图像梯度的分布图,当然频谱图上的各点与图像上各点并不存在一一对应的关系,即使在不移频的情况下也是没有。
傅立叶频谱图上我们看到的明暗不一的亮点,实际是上图像上某一点与邻域点差异的强弱,即梯度的大小,也即该点的频率的大小(可以这么理解,图像中的低频部分指低梯度的点,高频部分相反)。
图像傅立叶变换的物理意义图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。
如:大面积的沙漠在图像中是一片灰度变化缓慢的区域,对应的频率值很低;而对于地表属性变换剧烈的边缘区域在图像中是一片灰度变化剧烈的区域,对应的频率值较高。
傅立叶变换在实际中有非常明显的物理意义,设f是一个能量有限的模拟信号,则其傅立叶变换就表示f的频谱。
从纯粹的数学意义上看,傅立叶变换是将一个函数转换为一系列周期函数来处理的。
从物理效果看,傅立叶变换是将图像从空间域转换到频率域,其逆变换是将图像从频率域转换到空间域。
图像处理技术中的傅里叶变换原理与应用傅里叶变换是一种重要的数学工具,被广泛应用于图像处理领域。
图像处理技术中的傅里叶变换可以将图像从空域转换到频域,从而实现图像的频谱分析、滤波、图像增强等操作。
本文将详细介绍傅里叶变换的原理以及在图像处理中的应用。
傅里叶变换的原理傅里叶变换是基于信号的频谱分析理论,它可以将一个函数在时域上的表示变为在频域上的表示。
在图像处理中,我们可以将图像看作二维函数,将图像灰度值作为函数的值。
傅里叶变换可以将图像从空域转换到频域,通过分析图像的频谱,我们可以获取到图像中各个频率成分的信息。
傅里叶变换通过将图像分解为一系列正弦和余弦函数的和,来描述图像中的各个频率成分。
它的数学形式可以表示为以下公式:F(u, v) = ∫∫ f(x, y) * e^(-j2π(ux+vy)) dx dy其中,F(u, v)为频域中的函数,f(x, y)为空域中的函数。
傅里叶变换将函数f(x, y)转换为了频域中的函数F(u, v)。
傅里叶变换的应用图像的频域分析:通过对图像进行傅里叶变换,我们可以将图像从空域转换到频域,得到图像的频谱信息。
通过分析图像的频谱,我们可以了解图像中各个频率成分的强弱,从而对图像进行分析和处理。
例如,我们可以通过频谱分析来检测图像中的噪声,并对其进行滤波处理。
图像的滤波处理:傅里叶变换可以对图像进行频域滤波,从而实现图像的去噪、增强等操作。
频域滤波是通过对图像的频谱进行操作,再进行逆变换得到处理后的图像。
通过选择合适的滤波器函数,我们可以实现不同的滤波效果。
例如,利用傅里叶变换可以实现低通滤波,通过去除图像中的高频成分来实现图像的模糊效果。
图像的压缩:傅里叶变换在图像压缩中也有着重要的应用。
通过对图像进行傅里叶变换,我们可以将图像的能量集中在频域的少数主要频率上,从而实现对图像的压缩。
在傅里叶变换后,我们可以对频域系数进行量化和编码,以减小数据量。
在解码时,通过傅里叶逆变换可以将压缩后的数据还原为原始图像。
图像傅⾥叶变换1. 通俗理解傅⾥叶变换可参考:[1](图⽚摘⾃)2. 通俗理解数字图像傅⾥叶变换傅⾥叶定理指出,任何信号都可以表⽰成⼀系列正弦信号的叠加。
在⼀维领域,信号是⼀维正弦波的叠加,那么在⼆维领域,就是⽆数⼆维平⾯波的叠加。
⽐如⼀帧图像,不同点处的灰度值⾼低起伏变化,傅⾥叶变换就是⽤⽆数⼆维正弦波来拟合这种灰度值的起伏变化,灰度值的起伏变化平缓的地⽅,很低频的⼆维正弦波即可拟合,灰度值的起伏变化很⼤的地⽅(⽐如图像边缘、噪点等),则需要⾼频⼆维正弦波才能拟合。
刻画⼀维正弦波只需要⼀个频率值u,刻画⼆维正弦波则需要两个频率值(u,v)。
例如:数字图像傅⾥叶变换可参考:[1] MOOC课程[2] 数字图像处理,冈萨雷斯,第⼆版,第四章[3][4]下图摘⾃[1],在FFT功率谱图中,⾼亮度表明该频率特征明显。
3. 从数学公式的⾓度理解傅⾥叶变换本节的公式摘⾃冈萨雷斯的《数字图像处理》第四章3.1 1-Dimensional Fourier transform1-D Fourier transform and inverse Fourier transfrom:Using Euler's formula, Fourier transform can be expressed as所以,当我们看到傅⾥叶变换公式中的e−j2πµt时,我们应该想到的是⼀系列不同频率的正弦波。
傅⾥叶变换公式可这样理解:所谓傅⾥叶变换在其数学本质上⽆⾮是信号与正弦函数在时间轴上的卷积操作。
根据⼀般的惯例,我们将信号与之作卷积操作的部分称之为卷积核或核函数,因此我们可以从频率分解以外的视⾓来审视傅⾥叶变换,可以将其认为是信号与⼀个参数可变的核函数的卷积操作,其可变的核函数的参数就是频率。
(这段话摘⾃)1-D discrete Fourier transform:x is integers, M is the number of samples of µ.1-D inverse discrete Fourier transform:3.2 2-Dimensional Fourier transform2-D Fourier transform and inverse Fourier transfrom:2-D discrete Fourier transform:4. ⽤matlab实现傅⾥叶变换傅⾥叶变换函数:function F = FT_peng(I)[m,n] = size(I);F = zeros(m,n);for u = 1:mfor v = 1:nfor x = 1:mfor y = 1:nF(u,v) = F(u,v) + double(I(x,y)) * exp(-2*pi*1i*(u*x/m+v*y/n)); endendendendend傅⾥叶逆变换函数:function f = IFT_peng(I)[m,n] = size(I);f = zeros(m,n);for x = 1:mfor y = 1:nfor u = 1:mfor v = 1:nf(x,y) = f(x,y) + double(I(u,v)) * exp(2*pi*1i*(u*x/m+v*y/n)); endendendendf = f/(m*n);end主程序代码:clear;I = imread('test_img.png');I = imresize(I, [100,100]);I = rgb2gray(I);% using fft2 directlyI_fft2 = fft2(I);I_fft2 = abs(I_fft2); % abs将负实数和虚数部分调整为正实数I_fft2shift = fftshift(I_fft2); % 把四个⾓的⾼频信息移动到最中间I_fft2shift = uint8(I_fft2shift/256); % 除以256是为了缩⼩数值,能更好的显⽰% using function defined by usI_FT = FT_peng(I);I_FT2 = abs(I_FT);I_FTshift = fftshift(I_FT2);I_FTshift = uint8(I_FTshift/256);% recover the image by inverse Fourier function defined by usI_inv = IFT_peng(I_FT);I_inv = uint8(I_inv);% plotsubplot(221);imshow(I); title('Original image');subplot(222);imshow(I_fft2shift); title('fft2 frequency image');subplot(223);imshow(I_FTshift); title('FT frequency image');subplot(224);imshow(I_inv); title('Recovered image');运⾏结果:注:程序参考了博客Processing math: 100%。
图像处理技术中的傅里叶变换方法介绍傅里叶变换是一种将信号从时域转换到频域的方法,图像处理中广泛应用的一种数学工具。
傅里叶变换将图像转换为频域信号,使我们能够观察和分析图像中不同频率的成分。
在图像处理领域,傅里叶变换常用于图像的滤波、去噪、增强等任务。
本文将介绍傅里叶变换的原理和在图像处理中的应用。
让我们了解一下傅里叶变换的原理。
傅里叶变换基于傅里叶级数展开的思想,将函数分解成一组正弦和余弦函数的和。
对于一维信号,傅里叶变换可以表示为以下公式:F(u) = ∫ f(x) * e^(-2πiux) dx其中,F(u)表示信号在频域中的复数表示,f(x)表示输入信号在时域中的复数表示,u表示频率,i为虚数单位。
在图像处理中,傅里叶变换可以应用于二维信号,即图像。
图像可以通过对其在两个方向上进行傅里叶变换,得到其在频率域上的表示。
图像的傅里叶变换可以表示为以下公式:F(u,v) = ∬ f(x,y) * e^(-2πi(ux+vy)) dx dy其中,F(u,v)表示图像在频率域中的复数表示,f(x,y)表示输入图像在空域中的灰度值,u和v表示频率,i为虚数单位。
在图像处理中,我们经常使用的是傅里叶变换的逆变换,即将图像从频域转换回空域。
逆傅里叶变换可以表示为以下公式:f(x,y) = ∬ F(u,v) * e^(2πi(ux+vy)) du dv通过逆傅里叶变换,我们可以将对图像进行频域操作后的图像恢复到原始的空域。
在图像处理中,傅里叶变换有着广泛的应用。
其中之一是频域滤波。
通过将图像转换到频域,在频域中对图像进行滤波操作,可以实现一些空域中难以实现的效果。
傅里叶变换后的频域图像中较低频率成分代表图像的平滑部分,较高频率成分代表图像的细节和边缘。
通过选择不同的滤波器,在频域中滤除或增强不同频率的成分,可以实现图像的模糊、锐化、边缘检测等效果。
傅里叶变换还可以用于图像的压缩和去噪。
在图像压缩中,通过对图像进行傅里叶变换,并保留较低频率成分来实现图像的压缩。