图像处理傅立叶频谱图分析

2020-05-10 13:59:17 ViatorSun 阅读数 55103

很多人都不了解图像(二维)频谱中的每一点究竟代表了什么,有什么意义?


一句话解释为: 二维频谱中的每一个点都是一个与之一 一对应的二维正弦/余弦波。

视觉的优势永远大于其他器官对人的作用,所以对标眼睛的图像处理起到了非常重要的作用。

相比于时域分析图像的艰难,在频域分析图像就变得无比轻松,但是由于频域比较抽象,理解起来比较吃力,所以很多人并不能一下子就明白其原理。

在这里插入图片描述

% read_image (Image, 'E:\Demo\Matlab\mit.png')
% fft_image (Image, ImageFFT)

img=imread('mit2.png');
subplot(2,2,1);imshow(img);title('原图');
f=rgb2gray(img);                                     %对于RGB图像必须做的一步,也可以用im2double函数
F=fft2(f);                                           %傅里叶变换
F1=log(abs(F)+1);                                    %取模并进行缩放
subplot(2,2,2);imshow(F1,[]);title('傅里叶变换频谱图');
Fs=fftshift(F);                                      %将频谱图中零频率成分移动至频谱图中心
S=log(abs(Fs)+1);                                    %取模并进行缩放
subplot(2,2,3);imshow(S,[]);title('频移后的频谱图');
fr=real(ifft2(ifftshift(Fs)));                       %频率域反变换到空间域,并取实部
ret=im2uint8(mat2gray(fr));                          %更改图像类型
subplot(2,2,4);imshow(ret),title('逆傅里叶变换');

在此选用了著名的Cameraman的图像,这幅照片向我们表达的信息是显而易见的,一位优秀的摄影师,黑色的风衣,潇洒的发型,很有质感的皮手套,灰色的裤子,一台照相机,一个三脚架,草坪,蓝天,背景是MIT。而他的频谱图则并没有像一维的频谱图那样,有助于我们理解图像自身以外的或者是隐藏在图像背后的信息。比如说,中间的那条白线是什么,如果你没看我之前写的那篇文章你可能都不知道它究竟代表了什么。这也就是我为什么说,图像的傅里叶变换有些多此一举,反而把一个简单的问题弄得很复杂,弄巧成拙了。

言归正传,说了这么多,搞图像的哪有不和二维傅里叶变换打交道的呢。现在我就尽力说明一下图像二维傅里叶变换的一些属性(这里主讲二维频谱的特性,一维里面的共有特性就不细讲了)。

1、周期性

DFT的周期性:时时刻刻都要记住,对于DFT而言,他的空域和频域始终都是沿着X和Y方向无限周期拓展的。

在这里插入图片描述
如果只取其中的一个周期,则我们会得到如下的结果(即,频谱未中心化)。

在这里插入图片描述

为了便于频域的滤波和频谱的分析,常常在变换之前进行频谱的中心化。

频谱的中心化

从数学上说是在变换之前用指数项乘以原始函数,又因为e^jπ = 1,所以往往我们在写程序的时候实际上是把原始矩阵乘以(-1)^(x+y)达到频谱居中的目的。如下图所示:1<----->3 对调,2<----->4 对调,matlab中的fftshit命令就是这么干的。

这里写图片描述

变换后对调频谱的四个象限(swap quadrant)

在这里插入图片描述

经过中心化后的频谱

在这里插入图片描述

截取了其中的一个周期,作为图像的频谱

在这里插入图片描述

2、高低频率的分布

除了周期性之外,还应该知道的就是哪里是高频哪里是低频。在经过频谱居中后的频谱中,中间最亮的点是最低频率,属于直流分量(DC分量)。越往边外走,频率越高。所以,频谱图中的四个角和X,Y轴的尽头都是高频。

在这里插入图片描述

没有经过频谱居中处理的频谱图则正好相反,中间区域是高频,而四个角则是DC低频分量。

在这里插入图片描述

这里我再用一个正弦波的例子来展示频谱图的高低频的分布,见下图。

在这里插入图片描述

频谱中心化以后,正弦波的频点靠中心越近,频率越低,离中心越远,频率越高。

3、频谱图的能量分布

这里我顺便提一下频谱中的能级分布,则如下图所示。明显,DC分量所占能量最大最多,不论是二维还是一维都应该是这样。频率越高的部分,能量越少。如下图所示,图示画的不好,勉强能够理解就好。中间最小的那个圆圈内包含了大约85%的能量,中间那个圈包含了大约93%的能量,而最外面那个圈则包含了几乎99%的能量。

在这里插入图片描述

4、纵横“交错”性

在二维傅里叶变换中,空间域中横向的周期变化会反应在频谱图中的Y轴上,而空间域中纵向的周期变化会反应在频谱图中的X轴上。空间域中东南方向的周期变化会反应在频谱图中的东北方向,反之亦然。说明见下图。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

最后再附加一个例子。

在这里插入图片描述

5、方向性(direction)

在二维频谱图中的任意“一对亮点”(注意:频谱的对称性),都在相应的空间域有一个与之相对应的二维正弦波。亮点在二维频谱中的位置决定了与之对应的正弦波的频率和方向。

在空域图中的任意一条正弦线上,作该正弦线的法线。同时,把频谱图中的一对白色频点和坐标原点(DC中点)用一条直线连接起来。则,空域图中的法线正好和频谱图中的连线是完全平行的,一致的。

在这里插入图片描述

上图是一个45度倾斜的正弦波图像。

注意空间域中的任意一条法线和频谱图中频点和频谱图原点(DC)连线都是平行的,同时,空间域中的任意一条正弦线和频谱图中的连线是刚好正交的/垂直的。

在这里插入图片描述

上图为相同方向,较低频率正弦图的频谱。注意图中我用白色箭头所画的空间域(左图)的法线和频谱图中(右图)一对频点和DC的连线延长线,是平行的。

在这里插入图片描述

上图为相同方向,较高频率正弦图的频谱。注意图中我用白色箭头所画的空间域(左图)的法线和频谱图中(右图)一对频点和DC的连线延长线,是平行的。

下面我们来验证一下其他角度的情况,这一法则是否适用。

在这里插入图片描述

在这里插入图片描述

上面所有的例子中的频谱图都是频谱中心化的,那么针对没有经过频谱中心化的图呢?

在这里插入图片描述

这些实验还说明了一个非常重要的问题,那就是:频谱图中的任意一对对称的两点,或者说是频点,经过傅里叶反变换之后,就是空间域中的一个与之对应的正弦波(即,相应的频率和方向)。如下图所示。

在这里插入图片描述

6、平移和旋转

图像的平移并不会影响图像的频谱,同时,图像的相位会随着图像的旋转而旋转。

在这里插入图片描述

Part I 平移和旋转对频谱的影响
下面我用矩形的频谱图来说明图像中矩形的平移并不会对频谱有丝毫的影响。

在这里插入图片描述

再比如

在这里插入图片描述

再来看看频谱随着矩形的旋转而旋转相同的角度。

在这里插入图片描述

Part II 平移和旋转对相位的影响
先用一个简单的例子来说明图像相位的作用(所用图像为cameraman),在图像的频域分析和滤波中,相位是常常被忽略的。虽然相位分量的贡献很不直观,但是它恰恰很重要。相位是频谱中各正弦分量关于原点的位移的度量。

上面的小实验充分说明了,看似无用的,且常常被忽略的相位,在DFT的频域中起到了多么重要的作用(注意区分实部和虚部(直角坐标系)VS 频谱和相位(极坐标系)!)。

接下来我们再来看看图像在空间域中的移位和旋转对相位有什么影响。下图中,左边一列是图像,中间一列是频谱,右边一列是相位图。你必须意识到,通过肉眼,你很难从相位图中得到什么有用的信息。

这里写图片描述

在这里插入图片描述

2013-11-21 17:39:07 xiaguangzhiying 阅读数 3423

二维离散傅里叶变换的旋转性
源码如下:
>> clear
>> %构造原始图像
 I=zeros(256,256);
I(28:228,108:148)=1;
subplot(2,2,1),imshow(I);
 
 
%求原始图像的傅里叶频谱
J=fft2(I);
F=abs(J);
J1=fftshift(F);
subplot(2,2,2),imshow(J1,[5,50]);
 
 
 %对原始图像进行旋转
 K=imrotate(I,315,'bilinear','crop');
subplot(2,2,3),imshow(K);
 
 
 %求旋转后图像的傅里叶频谱
K1=fft2(K);
F=abs(K1);
K2=fftshift(F);
subplot(2,2,4),imshow(K2,[5,50]);
 
 
%加标题,可以加在subplot之后。
subplot(2,2,1),title('原始图像');
subplot(2,2,2),title('原图像的傅里叶频谱');
subplot(2,2,3),title('旋转后的图像');
subplot(2,2,4),title('旋转后图像的傅里叶频谱');
代码结果图像:



>> clear;
>> I=imread('C:\Users\hling\Desktop\1410575439.png');
>> figure(1)
>> imshow(real(I));
>> I=I(:,:,3);
>> fftI=fft2(I);
>> sfftI=fftshift(fftI);
>> RRfdp=real(sfftI);
>> IIfdp=imag(sfftI);%取其实部和虚部
>> a=sqrt(RRfdp.^2+IIfdp.^2);
>> a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225;%归一化
>> subplot(2,2,1),imshow(real(a));
>> b=angle(fftI);
>> subplot(2,2,2),imshow(real(b));
>> theta=30;
>> RR1=a*cos(theta);
>> II1=a*sin(theta);
>> fft
Error using fft
Not enough input arguments.
 
>> fftI1=RR1+i.*II1;
>> C=ifft2(fftI1)*255;
>> subplot(2,2,3),imshow(real(C));
>> 
>> mm=150;
>> RR2=mm*cos(angle(fftI));
>> II2=mm*sin(angle(fftI));
>> fftI2=RR2+i.*II2;
>> D=ifft2(fftI2);
>> subplot(2,2,4),imshow(real(D));
>> subplot(2,2,1),title('幅值谱');
>> subplot(2,2,2),title('相位谱');
>> subplot(2,2,3),title('幅值谱重构图像');
>> subplot(2,2,4),title('相位谱重构图像');


2017-03-21 12:30:08 ecnu18918079120 阅读数 11454

1为什么要进行傅里叶变换,其物理意义是什么?

傅立叶变换是数字信号处理领域一种很重要的算法。要知道傅立叶变换算法的意义,首先要了解傅立叶原理的意义。

傅立叶原理表明:任何连续测量的时序或信号,都可以表示为不同频率的正弦波信号的无限叠加。而根据该原理创立的傅立叶变换算法利用直接测量到的原始信号,以累加方式来计算该信号中不同正弦波信号的频率、振幅和相位。

和傅立叶变换算法对应的是反傅立叶变换算法。该反变换从本质上说也是一种累加处理,这样就可以将单独改变的正弦波信号转换成一个信号。

因此,可以说,傅立叶变换将原来难以处理的时域信号转换成了易于分析的频域信号(信号的频谱),可以利用一些工具对这些频域信号进行处理、加工。最后还可以利用傅立叶反变换将这些频域信号转换成时域信号。

从现代数学的眼光来看,傅里叶变换是一种特殊的积分变换。它能将满足一定条件的某个函数表示成正弦基函数的线性组合或者积分。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。

在数学领域,尽管最初傅立叶分析是作为热过程的解析分析的工具,但是其思想方法仍然具有典型的还原论和分析主义的特征。"任意"的函数通过一定的分解,都能够表示为正弦函数的线性组合的形式,而正弦函数在物理上是被充分研究而相对简单的函数类:1. 傅立叶变换是线性算子,若赋予适当的范数,它还是酉算子;2. 傅立叶变换的逆变换容易求出,而且形式与正变换非常类似;3. 正弦基函数是微分运算的本征函数,从而使得线性微分方程的求解可以转化为常系数的代数方程的求解.在线性时不变杂的卷积运算为简单的乘积运算,从而提供了计算卷积的一种简单手段;5. 离散形式的傅立叶的物理系统内,频率是个不变的性质,从而系统对于复杂激励的响应可以通过组合其对不同频率正弦信号的响应来获取;4. 著名的卷积定理指出:傅立叶变换可以化复变换可以利用数字计算机快速的算出(其算法称为快速傅立叶变换算法(FFT))。

正是由于上述的良好性质,傅里叶变换在物理学、数论、组合数学、信号处理、概率、统计、密码学、声学、光学等领域都有着广泛的应用。

2、图像傅立叶变换的物理意义

图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。如:大面积的沙漠在图像中是一片灰度变化缓慢的区域,对应的频率值很低;而对于地表属性变换剧烈的边缘区域在图像中是一片灰度变化剧烈的区域,对应的频率值较高。傅立叶变换在实际中有非常明显的物理意义,设f是一个能量有限的模拟信号,则其傅立叶变换就表示f的谱。从纯粹的数学意义上看,傅立叶变换是将一个函数转换为一系列周期函数来处理的。从物理效果看,傅立叶变换是将图像从空间域转换到频率域,其逆变换是将图像从频率域转换到空间域。换句话说,傅立叶变换的物理意义是将图像的灰度分布函数变换为图像的频率分布函数,傅立叶逆变换是将图像的频率分布函数变换为灰度分布函数

傅立叶变换以前,图像(未压缩的位图)是由对在连续空间(现实空间)上的采样得到一系列点的集合,我们习惯用一个二维矩阵表示空间上各点,则图像可由z=f(x,y)来表示。由于空间是三维的,图像是二维的,因此空间中物体在另一个维度上的关系就由梯度来表示,这样我们可以通过观察图像得知物体在三维空间中的对应关系。为什么要提梯度?因为实际上对图像进行二维傅立叶变换得到频谱图,就是图像梯度的分布图,当然频谱图上的各点与图像上各点并不存在一一对应的关系,即使在不移频的情况下也是没有。傅立叶频谱图上我们看到的明暗不一的亮点,实际上图像上某一点与邻域点差异的强弱,即梯度的大小,也即该点的频率的大小(可以这么理解,图像中的低频部分指低梯度的点,高频部分相反)。一般来讲,梯度大则该点的亮度强,否则该点亮度弱。这样通过观察傅立叶变换后的频谱图,也叫功率图,我们首先就可以看出,图像的能量分布,如果频谱图中暗的点数更多,那么实际图像是比较柔和的(因为各点与邻域差异都不大,梯度相对较小),反之,如果频谱图中亮的点数多,那么实际图像一定是尖锐的,边界分明且边界两边像素差异较大的。对频谱移频到原点以后,可以看出图像的频率分布是以原点为圆心,对称分布的。将频谱移频到圆心除了可以清晰地看出图像频率分布以外,还有一个好处,它可以分离出有周期性规律的干扰信号,比如正弦干扰,一副带有正弦干扰,移频到原点的频谱图上可以看出除了中心以外还存在以某一点为中心,对称分布的亮点集合,这个集合就是干扰噪音产生的,这时可以很直观的通过在该位置放置带阻滤波器消除干扰

另外我还想说明以下几点:

1图像经过二维傅立叶变换后,其变换系数矩阵表明:

若变换矩阵Fn原点设在中心,其频谱能量集中分布在变换系数短阵的中心附近(图中阴影区)。若所用的二维傅立叶变换矩阵Fn的原点设在左上角,那么图像信号能量将集中在系数矩阵的四个角上。这是由二维傅立叶变换本身性质决定的。同时也表明一股图像能量集中低频区域。

、变换之后的图像在原点平移之前四角是低频,最亮,平移之后中间部分是低频,最亮,亮度大说明低频的能量大(幅角比较大)


2020-02-26 13:26:49 math402 阅读数 657

观点一:实际上对二维图像进行傅里叶变化得到的频谱图,就是图像梯度的分布图,当然频谱图上的各点与原图像各点并不存在一一对应关系,即使在不移频的情况下也不是。傅里叶频谱图上看到的明亮不一的亮点,实际上图像上某一点的像素灰度值与它的邻域点差异的强弱,即梯度的大小,也即该点的频率的大小(也可以这么理解,低频部分指低梯度的点,高频部分指高梯度的点)。
观点二: 图像二维频谱图通过对输入图像进行水平和竖直两个方向的所有扫描线的一维傅立叶变换进行叠加得到,用来表示输入图像的频率分布。
频谱图以图像的中心为圆心,圆的相位对应原图中频率分量的相位,半径对应频率高低。低频半径小,高频半径大,中心为直流分量(图像灰度的平均值),某点的灰度值对应该频率的能量高低。