计算机视觉(五):频率域滤波基础

      • 一、数学预备知识
          • 1. 傅里叶级数
      • 二、基本概念
          • 1. 频率域
          • 2. 复数
          • 3. 欧拉公式
          • 4. 傅里叶级数
          • 5. 取样
      • 三、傅里叶变换
          • 1. 一维连续傅里叶变换
          • 2. 一维离散傅里叶变换
          • 3. 二维连续傅里叶变换
          • 4. 二维离散傅里叶变换
      • 四、卷积
          • 1. 定义
          • 2. 一维卷积定理
          • 3. 二维卷积定理
      • 五、傅里叶谱和相角
      • 六、频率域的其他特性

更多内容关注公众号:数学的旋律
计算机视觉(五):频率域滤波基础_第1张图片


tb店铺搜:FUN STORE玩物社,专业买手挑选送礼好物

一、数学预备知识

1. 傅里叶级数

f ( x ) f(x) f(x) 2 π 2\pi 2π 为周期,在 [ − π , π ] [-\pi, \pi] [π,π] 绝对可积,则由公式
a n = 1 π ∫ − π π f ( x ) cos ⁡ n x   d x ,      n = 0 , 1 , 2 , . . . a_n = {1\over\pi}\int_{-\pi}^{\pi}f(x)\cos nx\ dx,\ \ \ \ n=0,1,2,... an=π1ππf(x)cosnx dx,    n=0,1,2,... b n = 1 π ∫ − π π f ( x ) sin ⁡ n x   d x ,      n = 1 , 2 , . . . b_n = {1\over\pi}\int_{-\pi}^{\pi}f(x)\sin nx\ dx,\ \ \ \ n=1,2,... bn=π1ππf(x)sinnx dx,    n=1,2,...决定的 a n a_n an b n b_n bn 称为傅里叶系数,称由这些 a n a_n an b n b_n bn 决定的三角级数
f ( x ) ~ a 0 2 + ∑ n = 1 ∞ ( a n cos ⁡ n x + b n sin ⁡ n x ) f(x) ~ {a_0\over 2} + \sum_{n=1}^\infty(a_n\cos nx + b_n\sin nx) f(x)2a0+n=1(ancosnx+bnsinnx) f ( x ) f(x) f(x) 的傅里叶级数。
例1  设 f ( x ) f(x) f(x) 2 π 2\pi 2π 为周期,在 [ − π , π ] [-\pi, \pi] [π,π] f ( x ) = x f(x) = x f(x)=x,试求 f ( x ) f(x) f(x) 的傅里叶级数。
解: f ( x ) 解:f(x) 解:f(x)的图像如下图所示
计算机视觉(五):频率域滤波基础_第2张图片
f ( x ) f(x) f(x) [ − π , π ] [-\pi, \pi] [π,π] 是奇函数,知 f ( x ) cos ⁡ n x f(x)\cos nx f(x)cosnx [ − π , π ] [-\pi, \pi] [π,π] 也是奇函数,因而 a n = 0 a_n = 0 an=0
b 0 = 1 π ∫ − π π x sin ⁡ n x   d x = 2 π ∫ 0 π x sin ⁡ n x   d x b_0 = {1\over\pi}\int_{-\pi}^{\pi}x\sin nx\ dx = {2\over \pi}\int_0^\pi x\sin nx\ dx b0=π1ππxsinnx dx=π20πxsinnx dx = 2 n π [ − x cos ⁡ n x ∣ 0 π + ∫ 0 π cos ⁡ n x   d x ] = ( − 1 ) n − 1 2 n = {2\over{n\pi}}[-x\cos nx |_0^\pi + \int_0^\pi \cos nx\ dx] = {{(-1)^{n-1}2}\over n} =2[xcosnx0π+0πcosnx dx]=n(1)n12故傅里叶级数为
f ( x ) ~ 2 ∑ n = 1 ∞ ( − 1 ) n − 1 sin ⁡ n x n = 2 ( sin ⁡ x − sin ⁡ 2 x 2 + sin ⁡ 3 x 3 − sin ⁡ 4 x 4 + …   ) f(x) ~ 2\sum_{n=1}^\infty{{(-1)^{n-1}\sin nx}\over n} = 2(\sin x - {{\sin 2x}\over 2} + {{\sin 3x}\over 3} - {{\sin 4x}\over 4} + \dots) f(x)2n=1n(1)n1sinnx=2(sinx2sin2x+3sin3x4sin4x+)从下图可看出该函数的傅里叶级数大致图像

计算机视觉(五):频率域滤波基础_第3张图片



二、基本概念

1. 频率域

      频率域的图像处理首先把一副图像变换到频率域,在频率域中进行处理,然后通过反变换把处理结果返回到空间域。

2. 复数

      复数 C C C 的定义如下:
C = R + j I C = R + jI C=R+jI式中, R R R I I I 是实数, j j j 是一个等于 − 1 -1 1 的平方根的虚数,即 j = − 1 j = \sqrt {-1} j=1 R R R 表示复数的实部, I I I 表示复数的虚部。
      在极坐标下,有
C = ∣ C ∣ ( cos ⁡ θ + j sin ⁡ θ ) C = |C|(\cos\theta + j\sin\theta) C=C(cosθ+jsinθ)式中, ∣ C ∣ = R 2 + I 2 |C|=\sqrt {R^2+I^2} C=R2+I2 是复平面的原点到点 ( R , I ) (R,I) (R,I) 的向量的长度, θ \theta θ 是该向量与实轴的夹角。
      从下图可以看出 tan ⁡ θ = I R \tan\theta = {I\over R} tanθ=RI R = cos ⁡ θ ∣ C ∣ R=\cos\theta|C| R=cosθC I = sin ⁡ θ ∣ C ∣ I=\sin\theta|C| I=sinθC
计算机视觉(五):频率域滤波基础_第4张图片

3. 欧拉公式

欧拉公式定义如下:
e j θ = cos ⁡ θ + j sin ⁡ θ e^{j\theta} = \cos\theta + j\sin\theta ejθ=cosθ+jsinθ式中, e = 2.71828... e=2.71828... e=2.71828...,可给出极坐标下复数表示:
C = ∣ C ∣ e j θ C=|C|e^{j\theta} C=Cejθ式中, ∣ C ∣ |C| C θ \theta θ 的定义如上。

4. 傅里叶级数

具有周期 T T T 的连续变量 t t t 的周期函数 f ( t ) f(t) f(t) 可描述为乘以恰当系数的正弦和余弦之和,这个和就是傅里叶级数:
f ( t ) = ∑ n = − ∞ ∞ c n e j 2 π n T t f(t) = \sum_{n=-\infty}^\infty c_ne^{j{2\pi n\over T}t} f(t)=n=cnejT2πnt式中,
c n = 1 T ∫ − T / 2 T / 2 f ( t ) e − j 2 π n T t d t ,        n = 0 , ± 1 , ± 2 , … c_n={1\over T}\int_{-T/2}^{T/2}f(t)e^{-j{2\pi n\over T}t}dt,\ \ \ \ \ \ n=0,\pm1,\pm2,\dots cn=T1T/2T/2f(t)ejT2πntdt,      n=0,±1,±2,是系数。上式可展开为正弦与余弦之和这一事实来自欧拉公式。

5. 取样

连续变量 t t t t = 0 t=0 t=0 处的单位冲激表示为 δ ( t ) \delta(t) δ(t),其定义是:
δ ( t ) = { ∞ , t=0 0 , t ≠ 0 \delta(t)= \begin{cases} \infty, & \text {t=0} \\ 0, & \text{t$≠$0} \end{cases} δ(t)={,0,t=0t=0冲激串 S Δ T ( t ) S_{\Delta T}(t) SΔT(t) 定义为无限多个离散的周期冲激单元 Δ T \Delta T ΔT 之和:
S Δ T ( t ) = ∑ n = − ∞ ∞ δ ( t − n Δ T ) S_{\Delta T}(t) = \sum_{n=-\infty}^\infty\delta(t-n\Delta T) SΔT(t)=n=δ(tnΔT)模拟取样的一种方法是,用一个 Δ T \Delta T ΔT 单位间隔的冲激串作为取样函数去乘以 f ( t ) f(t) f(t),即
f ~ ( t ) = f ( t ) S Δ T ( t ) = ∑ n = − ∞ ∞ f ( t ) δ ( t − n Δ T )          ( 1 ) \tilde f(t) = f(t)S_{\Delta T}(t) = \sum_{n=-\infty}^\infty f(t)\delta(t-n\Delta T)\ \ \ \ \ \ \ \ (1) f~(t)=f(t)SΔT(t)=n=f(t)δ(tnΔT)        (1)式中, f ~ ( t ) \tilde f(t) f~(t) 表示取样后的函数。这个和式的每个成分都是由该冲激位置处 f ( t ) f(t) f(t) 的值加权后的冲激,每个取样值由加权后的冲激“强度”给出,我们可通过积分得到它,也就是说,序列中的任意取样值 f k f_k fk 由下式给出:
f k = ∫ − ∞ ∞ f ( t ) δ ( t − k Δ T ) d t = f ( k Δ T )          ( 2 ) f_k = \int_{-\infty}^\infty f(t)\delta(t-k\Delta T)dt = f(k\Delta T)\ \ \ \ \ \ \ \ (2) fk=f(t)δ(tkΔT)dt=f(kΔT)        (2)


三、傅里叶变换

1. 一维连续傅里叶变换

       f ( t ) f(t) f(t) 的傅里叶变换可写为
F ( u ) = ∫ − ∞ ∞ f ( t ) e − j 2 π u t d t F(u) = \int_{-\infty}^\infty f(t)e^{-j2\pi ut}dt F(u)=f(t)ej2πutdt相反,给定 F ( u ) F(u) F(u),通过傅里叶反变换可以得到 f ( t ) f(t) f(t),写为
f ( t ) = ∫ − ∞ ∞ F ( u ) e j 2 π u t d u f(t)=\int_{-\infty}^\infty F(u)e^{j2\pi ut}du f(t)=F(u)ej2πutdu以上两式共同称为傅里叶变换对。它们指出一个函数可以由其变换来恢复。使用欧拉公式, F ( u ) F(u) F(u) 可写为
F ( u ) = ∫ − ∞ ∞ f ( t ) [ cos ⁡ ( 2 π u t ) − j sin ⁡ ( 2 π u t ) ] d t F(u) = \int_{-\infty}^\infty f(t)[\cos(2\pi ut) - j\sin(2\pi ut)]dt F(u)=f(t)[cos(2πut)jsin(2πut)]dt      可以看到,如果 f ( t ) f(t) f(t) 是实数,那么其变换通常是复数。注意,傅里叶变换是 f ( t ) f(t) f(t) 乘以正弦项的展开,正弦项的频率由 u u u 的值决定。因为积分后剩下的唯一变量是频率,故我们说傅里叶变换域是频率域。

2. 一维离散傅里叶变换

      由取样后的函数的连续变换可得到离散傅里叶变换(DFT)。
      采样后函数 f ~ ( t ) \tilde f(t) f~(t) 的变换 F ~ ( u ) \tilde F(u) F~(u) 的表达式如下:
F ~ ( u ) = ∫ − ∞ ∞ f ~ ( t ) e − j 2 π u t d t \tilde F(u) = \int_{-\infty}^\infty \tilde f(t)e^{-j2\pi ut}dt F~(u)=f~(t)ej2πutdt用式(1)代替 f ~ ( t ) \tilde f(t) f~(t) 得:
F ~ ( u ) = ∫ − ∞ ∞ ∑ n = − ∞ ∞ f ( t ) δ ( t − n Δ T ) e − j 2 π u t d t \tilde F(u) = \int_{-\infty}^\infty \sum_{n=-\infty}^\infty f(t)\delta(t-n\Delta T)e^{-j2\pi ut}dt F~(u)=n=f(t)δ(tnΔT)ej2πutdt = ∑ n = − ∞ ∞ ∫ − ∞ ∞ f ( t ) δ ( t − n Δ T ) e − j 2 π u t d t = \sum_{n=-\infty}^\infty \int_{-\infty}^\infty f(t)\delta(t-n\Delta T)e^{-j2\pi ut}dt =n=f(t)δ(tnΔT)ej2πutdt = ∑ n = − ∞ ∞ f n e − j 2 π u n Δ T         ( 3 ) = \sum_{n=-\infty}^\infty f_ne^{-j2\pi un\Delta T}\ \ \ \ \ \ \ (3) =n=fnej2πunΔT       (3)最后一步由式(2)得出。
      虽然 f n f_n fn 是离散函数,但其傅里叶变换 F ~ ( u ) \tilde F(u) F~(u) 是周期为 1 / Δ T 1/\Delta T 1/ΔT 的无限周期连续函数。因此,我们需要表征 F ~ ( u ) \tilde F(u) F~(u) 的一个周期,而对一个周期取样是DFT的基础。
      假设我们想要在周期 u = 0 u=0 u=0 u = 1 / Δ T u=1/\Delta T u=1/ΔT 之间得到 F ~ ( u ) \tilde F(u) F~(u) M M M 个等间距样本。这可通过在如下频率处取样得到:
u = m M Δ T ,      m = 0 , 1 , 2 , . . . , M − 1 u = {m\over M\Delta T},\ \ \ \ m=0,1,2,...,M-1 u=MΔTm,    m=0,1,2,...,M1 u u u 的这一结果代入式(3),并令 F m F_m Fm 表示得到的结果,则有:
F m = ∑ n = 0 M − 1 f n e − j 2 π m n / M ,      m = 0 , 1 , 2 , . . . , M − 1 F_m = \sum_{n=0}^{M-1}f_ne^{-j2\pi mn/M},\ \ \ \ m=0,1,2,...,M-1 Fm=n=0M1fnej2πmn/M,    m=0,1,2,...,M1这个表达式就是我们寻找的离散傅里叶变换。
      通过傅里叶反变换(IDFT)可以得到 :
f n = 1 M ∑ m = 0 M − 1 F m e j 2 π m n / M ,      n = 0 , 1 , 2 , . . . , M − 1 f_n = {1\over M}\sum_{m=0}^{M-1}F_me^{j2\pi mn/M},\ \ \ \ n=0,1,2,...,M-1 fn=M1m=0M1Fmej2πmn/M,    n=0,1,2,...,M1      在前面的阐述中,我们使用 m m m n n n 来表示离散变量,因为人们在推导中历来都是这一的。然而,特别是在二维情况下,使用 x x x y y y 表示图像坐标变量并使用 u u u v v v 表示频率变量更为,在这里,这些变量可以理解为整数。这样,最终得到的离散傅里叶变换对如下( F ( u ) ≡ F m , f ( x ) ≡ f n F(u)\equiv F_m,f(x)\equiv f_n F(u)Fmf(x)fn):
F ( u ) = ∑ x = 0 M − 1 f ( x ) e − j 2 π u x / M ,      u = 0 , 1 , 2 , . . . , M − 1 F(u) = \sum_{x=0}^{M-1}f(x)e^{-j2\pi ux/M},\ \ \ \ u=0,1,2,...,M-1 F(u)=x=0M1f(x)ej2πux/M,    u=0,1,2,...,M1 f ( x ) = 1 M ∑ u = 0 M − 1 F ( u ) e j 2 π u x / M ,      x = 0 , 1 , 2 , . . . , M − 1 f(x) = {1\over M}\sum_{u=0}^{M-1}F(u)e^{j2\pi ux/M},\ \ \ \ x=0,1,2,...,M-1 f(x)=M1u=0M1F(u)ej2πux/M,    x=0,1,2,...,M1

3. 二维连续傅里叶变换

      令 f ( t , z ) f(t, z) f(t,z) 是两个连续变量 t t t z z z 的连续函数。则其二维连续傅里叶变换对可由下式给出:
F ( u , v ) = ∫ − ∞ ∞ ∫ − ∞ ∞ f ( t , z ) e − j 2 π ( u t + v z ) d t   d z F(u, v) = \int_{-\infty}^\infty \int_{-\infty}^\infty f(t, z)e^{-j2\pi (ut+vz)}dt\ dz F(u,v)=f(t,z)ej2π(ut+vz)dt dz f ( t , z ) = ∫ − ∞ ∞ ∫ − ∞ ∞ F ( u , v ) e j 2 π ( u t + v z ) d u   d v f(t, z) = \int_{-\infty}^\infty \int_{-\infty}^\infty F(u, v)e^{j2\pi (ut+vz)}du\ dv f(t,z)=F(u,v)ej2π(ut+vz)du dv式中, u u u v v v 是频率变量。当涉及图像时, t t t z z z 解释为连续空间变量。

4. 二维离散傅里叶变换

      二维离散傅里叶变换:
F ( u , v ) = ∑ x = 0 M − 1 ∑ y = 0 N − 1 f ( x , y ) e − j 2 π ( u x / M + v y / N ) ,    u = 0 , 1 , 2 , . . . , M − 1 ,    v = 0 , 1 , 2 , . . . , N − 1 F(u, v) = \sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x, y)e^{-j2\pi (ux/M+vy/N)},\ \ u=0,1,2,...,M-1,\ \ v=0,1,2,...,N-1 F(u,v)=x=0M1y=0N1f(x,y)ej2π(ux/M+vy/N),  u=0,1,2,...,M1,  v=0,1,2,...,N1      使用傅里叶反变换得到 f ( x , y ) f(x,y) f(x,y)
f ( x , y ) = 1 M N ∑ u = 0 M − 1 ∑ v = 0 N − 1 F ( u , v ) e j 2 π ( u x / M + v y / N ) ,    x = 0 , 1 , 2 , . . . , M − 1 ,    y = 0 , 1 , 2 , . . . , N − 1 f(x, y) = {1\over{MN}}\sum_{u=0}^{M-1}\sum_{v=0}^{N-1}F(u, v)e^{j2\pi (ux/M+vy/N)},\ \ x=0,1,2,...,M-1,\ \ y=0,1,2,...,N-1 f(x,y)=MN1u=0M1v=0N1F(u,v)ej2π(ux/M+vy/N),  x=0,1,2,...,M1,  y=0,1,2,...,N1



四、卷积

1. 定义

      具有连续变量 t t t 的两个连续函数 f ( t ) f(t) f(t) h ( t ) h(t) h(t) 的卷积定义如下:
f ( t ) ★ h ( t ) = ∫ − ∞ ∞ f ( τ ) h ( t − τ ) d τ f(t) ★ h(t) = \int_{-\infty}^\infty f(\tau)h(t-\tau) d\tau f(t)h(t)=f(τ)h(tτ)dτ      二维卷积定义如下:
f ( x , y ) ★ h ( x , y ) = ∑ m = 0 M − 1 ∑ n = 0 N − 1 f ( m , n ) h ( x − m , y − n ) f(x, y) ★ h(x, y) = \sum_{m=0}^{M-1}\sum_{n=0}^{N-1}f(m, n)h(x-m, y-n) f(x,y)h(x,y)=m=0M1n=0N1f(m,n)h(xm,yn)

2. 一维卷积定理

      空间域中两个函数的卷积的傅里叶变换,等于两个函数的傅里叶变换在频率域中的乘积;如果有两个变换的乘积,那么我们可以通过计算傅里叶反变换得到空间域的卷积。
      卷积定义可通过以下公式表示。我们将 t t t 所在的域称为空间域,将 u u u 所在的域称为频率域。 F ( u ) F(u) F(u) f ( t ) f(t) f(t) 的傅里叶变换; H ( u ) H(u) H(u) h ( t ) h(t) h(t) 的傅里叶变换,根据卷积定理有(    ⟺    \iff 表示傅里叶变换对):
f ( t ) ★ h ( t )    ⟺    F ( u ) H ( u ) f(t) ★ h(t) \iff F(u)H(u) f(t)h(t)F(u)H(u) f ( t ) h ( t )    ⟺    F ( u ) ★ H ( u ) f(t)h(t) \iff F(u) ★ H(u) f(t)h(t)F(u)H(u)

3. 二维卷积定理

f ( x , y ) ★ h ( x , y )    ⟺    F ( u , v ) H ( u , v ) f(x, y) ★ h(x, y) \iff F(u, v)H(u, v) f(x,y)h(x,y)F(u,v)H(u,v) f ( x , y ) h ( x , y )    ⟺    F ( u , v ) ★ H ( u , v ) f(x, y)h(x, y) \iff F(u, v) ★ H(u, v) f(x,y)h(x,y)F(u,v)H(u,v)


五、傅里叶谱和相角

因为二维DFT通常是复函数,因此可使用极坐标形式来表示:
F ( u , v ) = ∣ F ( u , v ) ∣ e j ϕ ( u , v ) F(u, v) = |F(u, v)|e^{j\phi (u, v)} F(u,v)=F(u,v)ejϕ(u,v)式中,幅度
∣ F ( u , v ) ∣ = [ R 2 ( u , v ) + F 2 ( u , v ) ] 1 2 |F(u, v)| = [R^2(u, v)+F^2(u, v)]^{1\over2} F(u,v)=[R2(u,v)+F2(u,v)]21称为傅里叶谱(或频谱),而
ϕ ( u , v ) = a r c tan ⁡ [ I ( u , v ) R ( u , v ) ] \phi (u, v) = arc\tan[{I(u, v)\over{R(u, v)}}] ϕ(u,v)=arctan[R(u,v)I(u,v)]称为相角。



六、频率域的其他特性

      变换最慢的频率成分( u = v = 0 u=v=0 u=v=0)与图像的平均灰度成正比。
      当我们远离变换的原点时,低频对应于图像中变换缓慢的灰度成分;当我们原点移开更远一些时,较高的频率开始对应于图像中越来越快的灰度变化。
      频率域中的滤波技术是以如下处理为基础的:修改傅里叶变换以达到特殊目的,然后计算IDFT返回到图像域。









以上全部内容参考书籍如下:
冈萨雷斯《数字图像处理(第三版)》

你可能感兴趣的:(计算机视觉,傅里叶级数,傅里叶变换,频率域滤波基础)