数字图像中的傅里叶变换(DFT&FFT)

来源:互联网 发布:广东开放大学网络 编辑:程序博客网 时间:2024/05/21 10:39

数字图像中的傅里叶变换(DFT&FFT)

傅里叶变换是线性系统分析的一个有力工具,它将图像从空域变化到频域,从而很容易地了解到图像的各空间频域成分,从而进行相应的处理。傅里叶变换应用十分广泛,如图像特征提取、空间频率域滤波、图像恢复、纹理分析等。

基础理解

用最熟悉的图lena 做例子,帮助理解,代码如下:

%% Read and show the Original picturei = imread('lena.tiff');%% do fft2a = rgb2gray(i);        % 将原图转化为二维灰度图b = im2double(a);       % 转换初始数据类型j = fft2(b);            % 进行二维快速傅里叶变换k = fftshift(j);        % 直流分量移到频谱中心l = log(abs(k) + 1);    % 数值图像的对数变化figure(1),subplot(121),imshow(i),colorbar,title('Original');subplot(122),imshow(l,[]),colorbar,title('进行fft2');

运行结果如example01

example01

一维傅里叶变换表示能将满足一定条件的某个函数表示成三角函数或者它们的积分的线性组合.比如方波信号可以看成是sin 函数的奇次谐波叠加:

x = 1:0.1:5 * pi;y = 6*sin(x) + 2*sin(3*x) + 1*sin(5*x) + 0.5*sin(7*x) + 4;plot(x,y,'b');axis('equal');title('多个奇次谐波的叠加');%% %前面的系数只是做个参考

运行结果如example02:

example02

对于一副图像,图像中灰度变化比较缓慢的区域可以用较低频率的正弦信号近似,而灰度变化较大的边缘地带则需要用高频正弦信号近似。一幅图像中大部分都是灰度变化缓慢的区域,只有一小部分是边缘,因此,其变换域的图像,能量主要几种在低频部分(对应赋值较高),只有一部分能量集中在高频部分(对应赋值较低)。如example01 中快速傅里叶变换后所示。

举个例子

绘制一个二值图像矩阵,并将其傅里叶函数可视化。

P.S. 创建一个类似于f(m,n) 的矩阵,然后用一个二进制图像显示,在对这个图像矩阵做傅里叶变换,显示幅值。

% 创建矩阵f = zeros(40,40);f(5:24,13:17) = 1;subplot(1,2,1)imshow(f):title('矩阵的显示');F = fft2(f);                        % 进行图像f的傅里叶变换F2 = log(abs(F));                   % 对幅值取对数subplot(1,2,2)imshow(F2,[]);title('傅里叶变换显示');

运行结果如example03所示:

exampleo3

可得

傅里叶中由三个分量编码:频率、幅值、相位描述正弦图像中的所有信息。在频域中,

  • 图像的幅值表示了图像中最明和最暗的峰值之间的差。

  • 相位表示了相对于原始波形,这个波形的偏移量。

  • 频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。频率越大说明原始信号变化速度越快,频率越小说明原始信号越平缓。当频率为0时,表示直流信号,没有变化。因此,频率的大小反应了信号的变化快慢。高频分量解释信号的突变部分,而低频分量决定信号的整体形象。

在图像处理中,频域反应了图像在空域灰度变化剧烈程度,也就是图像灰度的变化速度,或图像的梯度大小。

对图像而言,图像的边缘部分是突变部分,变化较快,因此反应在频域上是高频分量;图像的噪声大部分情况下是高频部分;图像平缓变化部分则为低频分量。

也就是说,傅立叶变换提供一条从空域到频率自由转换的途径来观察图像,可以将图像从灰度分布转化到频率分布上来观察图像的特征。

待续