【图像处理】-010 图像频域处理

  图像的频域处理能够在频率域内对图像进行滤波、重建、判断平移旋转等操作。这一篇博客主要用于记录我对图像频率域处理的学习历程,因此,这篇博客会进行持续更新。


文章目录

  • 1 傅立叶变换的理论依据
  • 1.1 傅立叶级数
  • 1.2 基础概念
  • 1.2.1 复数
  • 1.2.2 傅立叶级数
  • 1.2.3 冲激
  • 1.3 二维离散傅立叶变换
  • 2 傅立叶变换的性质
  • 2.1 空间和频率间隔的关系
  • 2.2 平移和旋转
  • 3 学习傅立叶变换的资料
  • 4 频域处理的应用


1 傅立叶变换的理论依据

图像频域 处理 python 图像频率域变换的原理_基础概念访问图像的内容,进行各种处理,这是在空间域内的访问方式,那么怎么才能访问图像的频域信息呢。为了理解图像的频率域表示,需要首先理解图像从空间域进行频率域的工具——傅立叶变换(Fourier Transform)。

1.1 傅立叶级数

  傅立叶变换是由法国数学家吉恩·巴普提斯特·约瑟夫·傅立叶(Jean Baptiste Joseph Fourier)于1768年在巴黎提出的,发表于《热分析理论》一书中。傅立叶指出:任何周期函数都可以表示成不同频率的正弦或余弦之和的形式,每个正弦项或余弦项乘以不同的系数(现在称该和为傅立叶级数)。

  非周期函数(但该曲线下的面积是有限的)也可以用正弦和/或余弦乘以加权函数的积分来表示。在这种情况下的公式就是傅立叶变换

  用傅立叶级数或变换表示的函数特征完全可以通过傅立叶反变换来重建,而不会丢失任何信息。 它可以使我们工作于傅立叶域(频域),而在返回到函数原有的域中的时候不会丢失任何信息。

图像频域 处理 python 图像频率域变换的原理_傅立叶变换_02

1.2 基础概念

1.2.1 复数

图像频域 处理 python 图像频率域变换的原理_图像频域 处理 python_03的定义如下:
图像频域 处理 python 图像频率域变换的原理_图像频域 处理 python_04
  其中,图像频域 处理 python 图像频率域变换的原理_基础概念_05图像频域 处理 python 图像频率域变换的原理_基础概念_06是实数,图像频域 处理 python 图像频率域变换的原理_图像频域 处理 python_07是一个等于图像频域 处理 python 图像频率域变换的原理_傅立叶变换_08的平方根的虚数。图像频域 处理 python 图像频率域变换的原理_基础概念_05表示复数的实部,图像频域 处理 python 图像频率域变换的原理_基础概念_06表示复数的虚部。实数是虚部图像频域 处理 python 图像频率域变换的原理_基础概念_11的复数。一个复数图像频域 处理 python 图像频率域变换的原理_图像频域 处理 python_03的共轭表示为图像频域 处理 python 图像频率域变换的原理_图像频域 处理 python_13,其定义为:
图像频域 处理 python 图像频率域变换的原理_基础概念_14
  在极坐标表示下复数为:
图像频域 处理 python 图像频率域变换的原理_基础概念_15
  其中,图像频域 处理 python 图像频率域变换的原理_基础概念_16是复平面的圆点到点图像频域 处理 python 图像频率域变换的原理_基础概念_17的向量的长度,图像频域 处理 python 图像频率域变换的原理_傅立叶变换_18是该向量与实轴的夹角。
  使用欧拉公式:
图像频域 处理 python 图像频率域变换的原理_频域_19
  其中,图像频域 处理 python 图像频率域变换的原理_基础概念_20,可以给出复数的形式如下:
图像频域 处理 python 图像频率域变换的原理_图像频域 处理 python_21

1.2.2 傅立叶级数

  在上面我们提到过,任何周期函数都可以表示成不同频率的正弦或余弦之和的形式,每个正弦项或余弦项乘以不同的系数(现在称该和为傅立叶级数)。具有周期图像频域 处理 python 图像频率域变换的原理_傅立叶变换_22的连续变量图像频域 处理 python 图像频率域变换的原理_基础概念_23的周期函数图像频域 处理 python 图像频率域变换的原理_基础概念_24可以被描述为乘以适当系数的正弦和余弦和,这个和就是傅立叶级数,形式如下:
图像频域 处理 python 图像频率域变换的原理_傅立叶变换_25
  其中,
图像频域 处理 python 图像频率域变换的原理_频域_26
是系数。

1.2.3 冲激

图像频域 处理 python 图像频率域变换的原理_基础概念_23图像频域 处理 python 图像频率域变换的原理_基础概念_28处的单位冲激表示为图像频域 处理 python 图像频率域变换的原理_傅立叶变换_29,其定义为:
图像频域 处理 python 图像频率域变换的原理_图像频域 处理 python_30
  其中,该函数还必须满足:
图像频域 处理 python 图像频率域变换的原理_基础概念_31

取样特性

图像频域 处理 python 图像频率域变换的原理_频域_32
  它在冲激位置图像频域 处理 python 图像频率域变换的原理_频域_33位置得到一个函数值。

图像频域 处理 python 图像频率域变换的原理_图像频域 处理 python_34表示一个离散变量,单位离散冲激图像频域 处理 python 图像频率域变换的原理_频域_35在离散系统中的作用与处理连续变量的冲激图像频域 处理 python 图像频率域变换的原理_傅立叶变换_29的作用相同。其定义如下:
图像频域 处理 python 图像频率域变换的原理_基础概念_37
  且其满足:
图像频域 处理 python 图像频率域变换的原理_图像频域 处理 python_38
  在位置图像频域 处理 python 图像频率域变换的原理_基础概念_39处的离散冲激,
图像频域 处理 python 图像频率域变换的原理_频域_40

图像频域 处理 python 图像频率域变换的原理_傅立叶变换_41

图像频域 处理 python 图像频率域变换的原理_图像频域 处理 python_34图像频域 处理 python 图像频率域变换的原理_图像频域 处理 python_43,二维离散冲激定义为:
图像频域 处理 python 图像频率域变换的原理_频域_44
其特定满足:
图像频域 处理 python 图像频率域变换的原理_基础概念_45
离散冲激的取样特性在该冲激所在位置产生离散函数图像频域 处理 python 图像频率域变换的原理_基础概念_46的值。

1.3 二维离散傅立叶变换

  二维离散傅立叶变换(DFT):
图像频域 处理 python 图像频率域变换的原理_傅立叶变换_47
  其中,图像频域 处理 python 图像频率域变换的原理_基础概念_46是大小为图像频域 处理 python 图像频率域变换的原理_图像频域 处理 python_49的数字图像。给出变换图像频域 处理 python 图像频率域变换的原理_频域_50,可以使用傅立叶反变换(IDFT)得到图像频域 处理 python 图像频率域变换的原理_基础概念_46:
图像频域 处理 python 图像频率域变换的原理_基础概念_52

2 傅立叶变换的性质

2.1 空间和频率间隔的关系

图像频域 处理 python 图像频率域变换的原理_基础概念_53取样生成了一幅数字图像图像频域 处理 python 图像频率域变换的原理_基础概念_46,它由分别在图像频域 处理 python 图像频率域变换的原理_基础概念_23,图像频域 处理 python 图像频率域变换的原理_图像频域 处理 python_56方向所取的图像频域 处理 python 图像频率域变换的原理_图像频域 处理 python_49个样本点组成,领图像频域 处理 python 图像频率域变换的原理_傅立叶变换_58图像频域 处理 python 图像频率域变换的原理_基础概念_59表示样本间的间隔,那么响应的离散频率域变量间的间隔分别由
图像频域 处理 python 图像频率域变换的原理_基础概念_60

图像频域 处理 python 图像频率域变换的原理_基础概念_61
给出。频率域样本间的间隔与空间样本间的间距和样本数成反比。

2.2 平移和旋转

  傅立叶变换的平移特性满足:
图像频域 处理 python 图像频率域变换的原理_基础概念_62
图像频域 处理 python 图像频率域变换的原理_频域_63
用指数项乘以图像频域 处理 python 图像频率域变换的原理_基础概念_46将使DFT的原点移到点图像频域 处理 python 图像频率域变换的原理_基础概念_65,用负指数项乘以图像频域 处理 python 图像频率域变换的原理_频域_50将使图像频域 处理 python 图像频率域变换的原理_基础概念_46的原点移动到点图像频域 处理 python 图像频率域变换的原理_频域_68,平移不改变图像频域 处理 python 图像频率域变换的原理_频域_50的幅度(谱)。

图像频域 处理 python 图像频率域变换的原理_基础概念_46旋转角度图像频域 处理 python 图像频率域变换的原理_基础概念_71角度,则图像频域 处理 python 图像频率域变换的原理_频域_50也旋转形同的角度,反之,若图像频域 处理 python 图像频率域变换的原理_频域_50旋转了一个角度,图像频域 处理 python 图像频率域变换的原理_基础概念_46也旋转相同的角度。

clc;
clear;
close all;

% 原图
src = zeros(256,256);
src(97:160,97:160)=1;

rsrc = imrotate(src,30);

tsrc = imtranslate(src,[50,0]);

rtsrc = imtranslate(rsrc,[50,0]);

ssrc = zeros(256,256);
ssrc(65:192,65:192)=1;


src_fft = fft2(src);
src_p = atan2(imag(src_fft),real(src_fft));
src_fft=fftshift(src_fft);
src_fft=abs(src_fft);
src_fft=log(src_fft+1);

rsrc_fft = fft2(rsrc);
rsrc_p = atan2(imag(rsrc_fft),real(rsrc_fft));
rsrc_fft=fftshift(rsrc_fft);
rsrc_fft=abs(rsrc_fft);
rsrc_fft=log(rsrc_fft+1);

tsrc_fft = fft2(tsrc);
tsrc_p = atan2(imag(tsrc_fft),real(tsrc_fft));
tsrc_fft=fftshift(tsrc_fft);
tsrc_fft=abs(tsrc_fft);
tsrc_fft=log(tsrc_fft+1);

rtsrc_fft = fft2(rtsrc);
rtsrc_p = atan2(imag(rtsrc_fft),real(rtsrc_fft));
rtsrc_fft=fftshift(rtsrc_fft);
rtsrc_fft=abs(rtsrc_fft);
rtsrc_fft=log(rtsrc_fft+1);

ssrc_fft = fft2(ssrc);
ssrc_p = atan2(imag(ssrc_fft),real(ssrc_fft));
ssrc_fft=fftshift(ssrc_fft);
ssrc_fft=abs(ssrc_fft);
ssrc_fft=log(ssrc_fft+1);

figure(1),subplot(3,5,1),imshow(src),title('原图'),subplot(3,5,6),imshow(src_fft),title('原图FFT幅值'),subplot(3,5,11),imshow(src_p),title('原图FFT相位');
subplot(3,5,2),imshow(rsrc),title('原图旋转30度'),subplot(3,5,7),imshow(rsrc_fft),title('原图旋转30度FFT幅值'),subplot(3,5,12),imshow(rsrc_p),title('原图旋转30度FFT相位');
subplot(3,5,3),imshow(tsrc),title('原图平移50像素'),subplot(3,5,8),imshow(tsrc_fft),title('原图平移50像素FFT幅值'),subplot(3,5,13),imshow(tsrc_p),title('原图平移50像素FFT相位');
subplot(3,5,4),imshow(rtsrc),title('原图旋转30度平移50像素'),subplot(3,5,9),imshow(rtsrc_fft),title('原图旋转30度平移50像素FFT幅值'),subplot(3,5,14),imshow(rtsrc_p),title('原图旋转30度平移50像素FFT相位');
subplot(3,5,5),imshow(ssrc),title('原图放大'),subplot(3,5,10),imshow(ssrc_fft),title('原图放大FFT幅值'),subplot(3,5,15),imshow(ssrc_p),title('原图放大FFT相位');

图像频域 处理 python 图像频率域变换的原理_傅立叶变换_75

从结果可以看出,

  • 平移不改变图像的幅度谱,但会改变相位;
  • 旋转会是幅度谱旋转相同角度,相位会被改变;
  • 缩放会同时改变幅度谱和相位;

3 学习傅立叶变换的资料

  • (1)这一片博文写得很好。里面用很多生动的图,描述了傅立叶变换各频率正弦余弦分量叠加的过程。
  • 原文出处: 韩昊
      作 者:韩 昊
      知 乎:Heinrich
      微 博:@花生油工人
      知乎专栏:与时间无关的故事
      
      谨以此文献给大连海事大学的吴楠老师,柳晓鸣老师,王新年老师以及张晶泊老师。
      
      转载的同学请保留上面这句话,谢谢。如果还能保留文章来源就更感激不尽了。

4 频域处理的应用

  • (1) 频域滤波处理
      主要是在频域中进行低通和高通滤波。我将这部分整理成了一篇文章。
  • (2) 同态滤波
      同态滤波在处理光照不均匀的图像时效果不错。