考试范围:
图像是一种数据结构,笼统来说是一个二维矩阵,每一个点的信息共同组成了视觉平面
根据上文,数字图像处理的第一种方案是空域法,因为它们是在图像的空间域(spatial domain)中操作的。空域是指图像的像素空间,也就是图像中每个像素的位置和像素值的空间布局。因此,空域法是直接在图像的原始表示中进行操作的方法。
具体来说包括:
注意到,上述研究方法是一种离散和拆分的视角,如果把图像看作整体的对象,研究它具有什么样的特征和成分,则出现了第二种方案即频域法:
为什么采用正交变换?
因为正交性保证了不同频率成分之间是相互独立的,将图像从时域转到频域的过程中也就完成了分析。同时保证信号的总能量不变、易于进行逆变换。
具体来说,对于傅里叶变换
F ( ω ) = ∫ f ( t ) e − j ω t d t F(\omega)=\int f(t)e^{-j\omega t} dt F(ω)=∫f(t)e−jωtdt
有:
∫ e − j ω 1 t e j ω 2 t d t = 2 π δ ( ω 1 − ω 2 ) \int e^{-j\omega_1 t}e^{j\omega_2 t} dt = 2\pi \delta(\omega_1 - \omega_2) ∫e−jω1tejω2tdt=2πδ(ω1−ω2)
若 ω 1 = ω 2 \omega_1 = \omega_2 ω1=ω2则整体为1,若不相等(频率不一致)则该项化为0
对于沃尔什变换
则有:
∑ w i ( n ) w j ( n ) = N δ i j \sum w_i(n)w_j(n) = N\delta_{ij} ∑wi(n)wj(n)=Nδij
其中 w i , w j w_i,w_j wi,wj一致时项为1,不一致时化为0
离散傅里叶变换(Discrete Fourier Transform,DFT)是傅里叶变换的一种形式,用于将离散信号(图像)从时域转换到频域。
假设有一个长度为 N N N的离散信号序列 x [ n ] x[n] x[n],其中 n = 0 , 1 , 2 , … , N − 1 n=0,1,2,\dots ,N-1 n=0,1,2,…,N−1,离散傅里叶定义如下: X [ k ] = ∑ n = 0 N − 1 x [ n ] ⋅ e − j 2 π k n N X[k] = \sum\limits_{n=0}^{N-1} x[n]\cdot e^{-j\frac{2\pi kn}{N}} X[k]=n=0∑N−1x[n]⋅e−jN2πkn
其中 k = 0 , 1 , 2 , … , N − 1 k=0,1,2,\dots ,N-1 k=0,1,2,…,N−1表示频域中的离散频率
逆变换表示为: X − 1 ( k ) = x [ n ] = 1 N ∑ k = 0 N − 1 X [ k ] ⋅ e j 2 π k n N X^{-1}(k)=x[n]=\frac{1}{N}\sum\limits_{k=0}^{N-1}X[k]\cdot e^{j\frac{2\pi kn}{N}} X−1(k)=x[n]=N1k=0∑N−1X[k]⋅ejN2πkn
快速傅里叶变换并不是一种新的变换,它是离散傅里叶变换的一种算法。这种方法利用傅里叶变换的对称性和周期性,通过将 DFT 分解为多个规模较小的 DFT消除了离散傅里叶的多余运算,时间复杂度为 O ( N l o g N ) O(NlogN) O(NlogN),在某些应用场合已能作到实时处理。
对于离散傅里叶变换: x ( n ) = 1 N ∑ n = 0 N − 1 X ( m ) ⋅ e − j 2 π N − > m n x(n)=\frac{1}{N}\sum\limits_{n=0}^{N-1}X(m)\cdot e^{-j\frac{2\pi}{N}-> mn} x(n)=N1n=0∑N−1X(m)⋅e−jN2π−>mn X ( m ) = ∑ n = 0 N − 1 x ( n ) ⋅ e − j 2 π N m n X(m)=\sum\limits_{n=0}^{N-1}x(n)\cdot e^{-j\frac{2\pi}{N}mn} X(m)=n=0∑N−1x(n)⋅e−jN2πmn
以 W = e − j 2 π N W=e^{-j\frac{2\pi}{N}} W=e−jN2π展开得到
X ( 0 ) = x ( n = 0 ) W 0 ∗ n = 0 + x ( n = 1 ) W 0 ∗ n = 1 + ⋯ + x ( N − 1 ) W 0 ( N − 1 ) X(0) = x(n=0)W^{0*n=0} + x(n=1)W^{0*n=1}+\dots +x(N-1)W^{0(N-1)} X(0)=x(n=0)W0∗n=0+x(n=1)W0∗n=1+⋯+x(N−1)W0(N−1)
X ( 1 ) = x ( n = 0 ) W 1 ∗ n = 0 + x ( n = 1 ) W 1 ∗ n = 1 + ⋯ + x ( N − 1 ) W 1 ( N − 1 ) X(1) = x(n=0)W^{1*n=0} + x(n=1)W^{1*n=1}+\dots +x(N-1)W^{1(N-1)} X(1)=x(n=0)W1∗n=0+x(n=1)W1∗n=1+⋯+x(N−1)W1(N−1)
X ( 2 ) = x ( n = 0 ) W 2 ∗ n = 0 + x ( n = 1 ) W 2 ∗ n = 1 + ⋯ + x ( N − 1 ) W 2 ( N − 1 ) X(2) = x(n=0)W^{2*n=0} + x(n=1)W^{2*n=1}+\dots +x(N-1)W^{2(N-1)} X(2)=x(n=0)W2∗n=0+x(n=1)W2∗n=1+⋯+x(N−1)W2(N−1)
… \dots …
X ( N − 1 ) = x ( n = 0 ) W ( N − 1 ) ∗ n = 0 + x ( n = 1 ) W ( N − 1 ) ∗ n = 1 + ⋯ + x ( N − 1 ) W ( N − 1 ) ∗ ( N − 1 ) X(N-1) = x(n=0)W^{(N-1)*n=0} + x(n=1)W^{(N-1)*n=1}+\dots +x(N-1)W^{(N-1)*(N-1)} X(N−1)=x(n=0)W(N−1)∗n=0+x(n=1)W(N−1)∗n=1+⋯+x(N−1)W(N−1)∗(N−1)
要完成DFT,需要 N 2 N^2 N2次乘法和 N ( N − 1 ) N(N-1) N(N−1)次加法
对于 W N m = e − j 2 π N m W^{m}_N = e^{-j\frac{2\pi}{N}m} WNm=e−jN2πm,因有 W N m = W 2 N 2 m (偶), W N m + N 2 = − W N m (奇) W^m_N = W^{2m}_{2N}(偶),W^{m+\frac{N}{2}}_N = -W^m_N(奇) WNm=W2N2m(偶),WNm+2N=−WNm(奇)可以进行化简:
把 x ( n ) x(n) x(n)分成偶数点和奇数点,有
x 1 ( n ) = x ( n ) x_1(n)=x(n) x1(n)=x(n)
x 2 ( n ) = x ( 2 n + 1 ) x_2(n)=x(2n+1) x2(n)=x(2n+1)
得到算法流程图:
把 x ( n ) x(n) x(n)分成偶数点和奇数点,即:
x 1 ( n ) = x ( 2 n ) x_1(n)=x(2n) x1(n)=x(2n)
x 2 ( n ) = x ( 2 n + 1 ) x_2(n)=x(2n+1) x2(n)=x(2n+1)
得到算法流程图:
FFT需要用到复数乘法,运算负担较大,因此引入了更快的沃尔什变换。
沃尔什(Walsh)函数集是完备的非正弦型的二元(取值为+1与-1)正交函数集,沃尔什函数是定义在半开区间 [0,1) 的矩形波族, 每个矩形波有一个编号 n ( n = 0 , 1 , 2 , 3 , … ) n(n = 0 , 1 , 2 , 3 , … ) n(n=0,1,2,3,…),,满足封闭性,构成群。
按沃尔什排列的沃尔什函数表达式为: w a l ( i , t ) = ∏ k = 0 P − 1 [ R ( k + 1 , t ) ] g ( i ) k , g ( i ) ∈ 0 , 1 wal(i,t)=\prod\limits_{k=0}^{P-1}[R(k+1,t)]^{g(i)_k},g(i)\in {0,1} wal(i,t)=k=0∏P−1[R(k+1,t)]g(i)k,g(i)∈0,1
沃尔什函数的性质:
离散沃尔什变换的表达式为: W ( i ) = 1 N ∑ t = 0 N − 1 f ( t ) ⋅ w a l ( i , t ) W(i)=\frac{1}{N}\sum\limits_{t=0}^{N-1}f(t)\cdot wal(i,t) W(i)=N1t=0∑N−1f(t)⋅wal(i,t) f ( t ) = ∑ i = 0 N − 1 W ( i ) ⋅ w a l ( i , t ) f(t)=\sum\limits_{i=0}^{N-1}W(i)\cdot wal(i,t) f(t)=i=0∑N−1W(i)⋅wal(i,t)
离散沃尔什-哈达玛变换的表现形式如下:
[ W ( 0 ) W ( 1 ) ⋮ W ( N − 1 ) ] = 1 N [ H ( N ) ] [ f ( 0 ) f ( 1 ) ⋮ f ( N − 1 ) ] \begin{bmatrix} W(0) \\ W(1) \\ \vdots \\ W(N-1) \end{bmatrix} =\frac{1}{N}[H(N)]\begin{bmatrix} f(0) \\ f(1) \\ \vdots \\ f(N-1) \end{bmatrix} W(0)W(1)⋮W(N−1) =N1[H(N)] f(0)f(1)⋮f(N−1)
离散沃尔什-哈达玛变换的性质:
证明:
用 W \mathcal{W} W表示沃尔什变换,则
W [ C 12 ( t ) ] = 1 N ∑ t = 0 N − 1 C 12 ⋅ w a l ( n , t ) \mathcal{W}[C_{12}(t)] = \frac{1}{N}\sum\limits_{t=0}^{N-1}C_{12}\cdot wal(n, t) W[C12(t)]=N1t=0∑N−1C12⋅wal(n,t)
= 1 N ∑ t = 0 N − 1 [ 1 N ∑ t = 0 N − 1 f 1 ( l ) ⋅ f 2 ( t ⊕ l ) ] ⋅ w a l ( n , l ) =\frac{1}{N}\sum\limits_{t=0}^{N-1}[\frac{1}{N}\sum\limits_{t=0}^{N-1}f_1(l)\cdot f_2(t\oplus l)]\cdot wal(n,l) =N1t=0∑N−1[N1t=0∑N−1f1(l)⋅f2(t⊕l)]⋅wal(n,l)
= 1 N ∑ t = 0 N − 1 f 1 ( l ) [ 1 N ∑ t = 0 N − 1 f 2 ( t ⊕ l ) ⋅ w a l ( n , t ) ] =\frac{1}{N}\sum\limits_{t=0}^{N-1}f_1(l)[\frac{1}{N}\sum\limits_{t=0}^{N-1}f_2(t\oplus l)\cdot wal(n,t)] =N1t=0∑N−1f1(l)[N1t=0∑N−1f2(t⊕l)⋅wal(n,t)]
= 1 N ∑ t = 0 N − 1 f 1 ⋅ W 2 ( n ) ⋅ w a l ( n , l ) =\frac{1}{N}\sum\limits_{t=0}^{N-1} f_1\cdot W_2(n)\cdot wal(n,l) =N1t=0∑N−1f1⋅W2(n)⋅wal(n,l)
= W 2 ( n ) ⋅ [ 1 N ∑ t = 0 N − 1 f 1 ( l ) ⋅ w a l ( n , l ) ] =W_2(n)\cdot[\frac{1}{N}\sum\limits_{t=0}^{N-1}f_1(l)\cdot wal(n,l)] =W2(n)⋅[N1t=0∑N−1f1(l)⋅wal(n,l)]
= W 2 ( n ) ⋅ W 1 ( n ) =W_2(n)\cdot W_1(n) =W2(n)⋅W1(n)
证明:
∫ 0 1 w a l ( i , t ) ⋅ w a l ( j , t ) d t = { 0 , i ≠ j 1 , i = j \int\limits_0^1 wal(i,t)\cdot wal(j,t)dt=\begin{cases} 0,&\text i\neq j\\ 1,&\text i=j \end{cases} 0∫1wal(i,t)⋅wal(j,t)dt={0,1,i=ji=j
由乘法定理有:
∫ 0 1 w a l ( i , t ) ⋅ w a l ( j , t ) d t = ∫ 0 1 w a l ( i ⊕ j , t ) d t \int\limits_0^1 wal(i,t) \cdot wal(j,t) dt=\int\limits_0^1 wal(i\oplus j,t)dt 0∫1wal(i,t)⋅wal(j,t)dt=0∫1wal(i⊕j,t)dt
= ∫ 0 1 w a l ( l , t ) d t =\int\limits_0^1 wal(l,t)dt =0∫1wal(l,t)dt,其中 l = i ⊕ j l=i\oplus j l=i⊕j
根据 ∫ 0 1 w a l ( 0 , t ) d t = 1 \int\limits_0^1 wal(0,t)dt = 1 0∫1wal(0,t)dt=1 ∫ 0 1 w a l ( i , t ) d t = 0 ( i > 0 ) \int\limits_0^1wal(i,t)dt=0 \quad(i>0) 0∫1wal(i,t)dt=0(i>0)
所以当 i = j = 0 i=j=0 i=j=0时,有 ∫ 0 1 w a l ( i , t ) ⋅ w a l ( j , t ) d t = 1 \int\limits_0^1 wal(i,t)\cdot wal(j,t)dt = 1 0∫1wal(i,t)⋅wal(j,t)dt=1
否则 i ≠ j i\neq j i=j,则 ∫ 0 1 w a l ( i , t ) ⋅ w a l ( j , t ) d t = 0 \int\limits_0^1wal(i,t)\cdot wal(j,t)dt=0 0∫1wal(i,t)⋅wal(j,t)dt=0
正交性得证