图像正交变换的本质
图像是由许多点冲激函数的累加,图像通过处理系统的效果就是每一点冲激函数通过处理系统的效果之和。同时任何图像都可以分解为基图像之和,基图像之间是相互正交的,图像正交变换的本质就是寻找合适的基图像来表达图像,并通过改变基矢量及其加权系数来变换图像。
图像的正交变换一般分为三大类:
- 正弦余弦型变换
- 方波型变换
- 基于特征向量的变换
一些经典变换的总结:
变换 | 变换的特点及其经典应用范围 |
---|---|
傅里叶变换 | 需要进行复数运算,物理意义明确。其二维变换可分离,具有快速算法。可把整幅图像的信息很好地用若干个频率系数来表达 |
余弦变换 | 准最佳变换。其二维变换可分离,具有快速算法,只要求三角函数运算,运算量比傅里叶变换小一半。在高相关性图像的处理中,最接近最佳的K-L变换。信息压缩效果好 |
沃尔什变换 | 只需要进行实数计算,具有快速算法,性能优于傅里叶变换 |
哈达玛变换 | 在图像处理算法的硬件实现上很实用,容易模拟但不宜分析。信息压缩效果好 |
K-L变换 | 在许多意义下是最佳的,但是无快速算法,对彩色图像或人脸图像这类特征图像十分有效 |
冲激函数
冲激函数通常也称冲激、 δ \delta δ函数或狄克拉 δ \delta δ函数,实际上冲激函数是线性泛函,不是普通函数,可以认为它是在零点无穷大,其他点为零的一个分布: δ ( t ) = { ∞ , t=0 0 , t ≠ 0 \delta(t)=\begin{cases} \infty, & \text{t=0} \\ 0, & \text{t$\neq$ 0} \end{cases} δ(t)={∞,0,t=0t̸= 0,且该函数满足等式 ∫ − ∞ ∞ δ ( t ) d t = 1 \int_{-\infty}^{\infty}\delta(t)\text{d}t=1 ∫−∞∞δ(t)dt=1
基函数和基图像
变换核矩阵的各行构成了 N N N维矢量空间的一组基矢量,这些行是正交的,因此空间中任一矢量都可以用单位长度基矢量的加权和来表示。
具体来说就是数字图像可以表示为按行串接的矢量,该矢量可以表示成单位基矢量的加权和,权重为像素的强度值,即: f = [ f 0 f 1 ⋮ f N 2 − 1 ] = f 0 [ 1 0 ⋮ 0 ] + f 1 [ 0 1 ⋮ 0 ] + . . . + f N 2 − 1 [ 0 0 ⋮ 1 ] f=\begin{bmatrix}f_0 \\ f_1 \\ \vdots \\ f_{N^2-1} \\ \end{bmatrix}=f_0\begin{bmatrix}1 \\ 0 \\ \vdots \\ 0 \\ \end{bmatrix}+f_1\begin{bmatrix}0 \\ 1 \\ \vdots \\ 0 \\ \end{bmatrix}+...+f_{N^2-1}\begin{bmatrix}0 \\ 0 \\ \vdots \\ 1 \\ \end{bmatrix} f=⎣⎢⎢⎢⎡f0f1⋮fN2−1⎦⎥⎥⎥⎤=f0⎣⎢⎢⎢⎡10⋮0⎦⎥⎥⎥⎤+f1⎣⎢⎢⎢⎡01⋮0⎦⎥⎥⎥⎤+...+fN2−1⎣⎢⎢⎢⎡00⋮1⎦⎥⎥⎥⎤ = f 0 e 0 + f 1 e 1 + . . . + f N 2 − 1 e N 2 − 1 = ∑ i = 0 N 2 − 1 f i e i =f_0e_0+f_1e_1+...+f_{N^2-1}e_{N^2-1}=\sum_{i=0}^{N^2-1}f_ie_i =f0e0+f1e1+...+fN2−1eN2−1=i=0∑N2−1fiei其中 e i e_i ei为 N 2 N^2 N2维空间上的正交矢量,即单位基矢量; f i f_i fi为加权系数
实际上任何以矩阵表示的图像都可以看做是加权系数为图像像素值
f
(
i
,
j
)
f(i,j)
f(i,j)的一系列加权和,例如:
f
=
[
7
3
2
5
]
=
7
[
1
0
0
0
]
+
3
[
0
1
0
0
]
+
2
[
0
0
1
0
]
+
5
[
0
0
0
1
]
f=\begin{bmatrix}7 & 3 \\ 2 & 5 \\ \end{bmatrix}=7\begin{bmatrix}1 & 0 \\ 0 & 0 \\ \end{bmatrix}+3\begin{bmatrix}0 & 1 \\ 0 & 0 \\ \end{bmatrix}+2\begin{bmatrix}0 & 0 \\ 1 & 0 \\ \end{bmatrix}+5\begin{bmatrix}0 & 0 \\ 0 & 1 \\ \end{bmatrix}
f=[7235]=7[1000]+3[0010]+2[0100]+5[0001]令
e
0
=
[
1
0
]
e_0=\begin{bmatrix}1 \\ 0 \\ \end{bmatrix}
e0=[10],
e
1
=
[
0
1
]
e_1=\begin{bmatrix}0 \\ 1\\ \end{bmatrix}
e1=[01],则有:
e
0
e
0
T
=
[
1
0
]
[
1
0
]
T
=
[
1
0
0
0
]
e_0e_0^T=\begin{bmatrix}1 \\ 0 \\ \end{bmatrix}\begin{bmatrix}1 \\ 0 \\ \end{bmatrix}^T=\begin{bmatrix}1 & 0 \\ 0 & 0 \\ \end{bmatrix}
e0e0T=[10][10]T=[1000]
e
0
e
1
T
=
[
0
1
0
0
]
,
e
1
e
0
T
=
[
0
0
1
0
]
,
e
1
e
1
T
=
[
0
0
0
1
]
e_0e_1^T=\begin{bmatrix}0 & 1 \\ 0 & 0 \\ \end{bmatrix},e_1e_0^T=\begin{bmatrix}0 & 0 \\ 1 & 0 \\ \end{bmatrix},e_1e_1^T=\begin{bmatrix}0 & 0 \\ 0 & 1 \\ \end{bmatrix}
e0e1T=[0010],e1e0T=[0100],e1e1T=[0001]这时,
f
f
f可以表示为:
f
=
7
e
0
e
0
T
+
3
e
0
e
1
T
+
2
e
1
e
0
T
+
5
e
1
e
1
T
f=7e_0e_0^T+3e_0e_1^T+2e_1e_0^T+5e_1e_1^T
f=7e0e0T+3e0e1T+2e1e0T+5e1e1T
对于
N
∗
N
N*N
N∗N的图像阵列,有:
f
=
f
(
0
,
0
)
e
0
e
0
T
+
f
(
0
,
1
)
e
0
e
1
T
+
.
.
.
+
f
(
i
,
j
)
e
i
e
j
T
+
.
.
.
+
f
(
N
−
1
,
N
−
1
)
e
N
−
1
e
N
−
1
T
f=f(0,0)e_0e_0^T+f(0,1)e_0e_1^T+...+f(i,j)e_ie_j^T+...+f(N-1,N-1)e_{N-1}e_{N-1}^T
f=f(0,0)e0e0T+f(0,1)e0e1T+...+f(i,j)eiejT+...+f(N−1,N−1)eN−1eN−1T
=
∑
i
=
0
N
−
1
∑
j
=
0
N
−
1
f
(
i
,
j
)
e
i
e
j
T
=\sum_{i=0}^{N-1}\sum_{j=0}^{N-1}f(i,j)e_ie_j^T
=i=0∑N−1j=0∑N−1f(i,j)eiejT其中基向量
e
i
e_i
ei或
e
j
e_j
ej为单位列向量,仅第
i
+
1
i+1
i+1个元素为1,其余全为0,例如
e
1
=
[
0
1
⋯
0
]
T
e_1=\begin{bmatrix}0 & 1 & \cdots & 0\\ \end{bmatrix}^T
e1=[01⋯0]T,因此基图像
e
i
e
j
T
e_ie_j^T
eiejT就表示了仅1个非0元素的系数矩阵。
任何图像都可以看做是加权系数为图像像素值 f ( i , j ) f(i,j) f(i,j)的一系列单位基图像的加权和。
一维正交变换
线性变换
设 t t t为一个 N ∗ 1 N*1 N∗1向量, T T T为一个 N ∗ N N*N N∗N矩阵, T T T作用于列向量 f ( x ) f(x) f(x)得到列向量 F F F,这就定义了向量 t t t的一个线性变换,表达为: F ( μ ) = ∑ x = 0 N − 1 f ( x ) g ( x , μ ) , μ ∈ [ 0 , N − 1 ] F(\mu)=\sum_{x=0}^{N-1}f(x)g(x,\mu),\mu\in[0,N-1] F(μ)=x=0∑N−1f(x)g(x,μ),μ∈[0,N−1]其矩阵形式为: F = T f ( x ) F=Tf(x) F=Tf(x)其中, f ( x ) f(x) f(x)称为冲激, g ( t , μ ) g(t,\mu) g(t,μ)称为正变换核函数或冲激响应,矩阵 T T T称为变换的核矩阵或变换矩阵。
对该线性变换的逆变换为: f ( x ) = ∑ μ = 0 N − 1 F ( μ ) h ( x , μ ) , x ∈ [ 0 , N − 1 ] f(x)=\sum_{\mu=0}^{N-1}F(\mu)h(x,\mu),x\in[0,N-1] f(x)=μ=0∑N−1F(μ)h(x,μ),x∈[0,N−1]其矩阵形式为: f ( x ) = F T − 1 f(x)=FT^{-1} f(x)=FT−1其中, h ( t , μ ) h(t,\mu) h(t,μ)称为逆变换核函数,矩阵 T − 1 T^{-1} T−1称为逆变换的核矩阵或变换矩阵。
显然有: T T − 1 = E TT^{-1}=E TT−1=E
例如: 平面坐标系中的向量旋转变换
[
y
1
y
2
]
=
[
cos
θ
−
sin
θ
sin
θ
cos
θ
]
[
x
1
x
2
]
\begin{bmatrix} y_1 \\ y_2 \\ \end{bmatrix}=\begin{bmatrix} \cos\theta & -\sin\theta\\ \sin\theta & \cos\theta\\ \end{bmatrix}\begin{bmatrix} x_1 \\ x_2 \\ \end{bmatrix}
[y1y2]=[cosθsinθ−sinθcosθ][x1x2]可表示为:
y
=
T
x
y=Tx
y=Tx其中
T
=
[
cos
θ
−
sin
θ
sin
θ
cos
θ
]
T=\begin{bmatrix} \cos\theta & -\sin\theta\\ \sin\theta & \cos\theta\\ \end{bmatrix}
T=[cosθsinθ−sinθcosθ],该矩阵表达式的展开式为:
{
y
1
=
x
1
cos
θ
−
x
2
sin
θ
y
2
=
x
1
sin
θ
+
x
2
cos
θ
\begin{cases} y_1=x_1\cos\theta-x_2\sin\theta\\ y_2=x_1\sin\theta+x_2\cos\theta \end{cases}
{y1=x1cosθ−x2sinθy2=x1sinθ+x2cosθ若将
T
T
T抽象表达为
T
=
[
a
11
a
12
a
21
a
22
]
T=\begin{bmatrix} a_{11} & a_{12}\\ a_{21} & a_{22}\\ \end{bmatrix}
T=[a11a21a12a22],则展开式可以表达为:
{
y
1
=
x
1
a
11
+
x
2
a
12
y
2
=
x
1
a
21
+
x
2
a
22
\begin{cases} y_1=x_1a_{11}+x_2a_{12}\\ y_2=x_1a_{21}+x_2a_{22} \end{cases}
{y1=x1a11+x2a12y2=x1a21+x2a22,简化得:
y
i
=
∑
i
=
1
2
x
i
a
j
,
i
,
j
∈
[
1
,
2
]
y_i=\sum_{i=1}^{2}x_ia_{j,i},j\in[1,2]
yi=i=1∑2xiaj,i,j∈[1,2]
酉变换与正交性
T T T的逆变换等于其复数矩阵共轭的转置时,称该线性变换为酉变换,表示为: T − 1 = ( T ∗ ) T = ( T ∗ ) ′ T^{-1}=(T^{*})^T=(T^{*})' T−1=(T∗)T=(T∗)′或 T T − 1 = T ( T ∗ ) ′ = E TT^{-1}=T(T^*)'=E TT−1=T(T∗)′=E
当 T T T为实数矩阵时,实数的共轭等于实数本身,此时酉变换就称为正交变换,表示为: T − 1 = T ′ T^{-1}=T' T−1=T′,于是显然有: T T ′ = E TT'=E TT′=E。
在正交变换中, T T T的每一行称为该正交变换的正交基。
例如: 设有矩阵 A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ a n n ] A=\begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n}\\ a_{21} & a_{22} & \cdots & a_{2n}\\ \vdots & \vdots & \ddots & \vdots\\ a_{n1} & a_{n2} & \cdots & a_{nn}\\ \end{bmatrix} A=⎣⎢⎢⎢⎡a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1na2n⋮ann⎦⎥⎥⎥⎤,若有 A A A的变换为正交变换
则有 A A A的共轭转置: A ′ = A T = [ a 11 a 21 ⋯ a n 1 a 12 a 22 ⋯ a n 2 ⋮ ⋮ ⋱ ⋮ a 1 n a 2 n ⋯ a n n ] A'=A^T=\begin{bmatrix} a_{11} & a_{21} & \cdots & a_{n1}\\ a_{12} & a_{22} & \cdots & a_{n2}\\ \vdots & \vdots & \ddots & \vdots\\ a_{1n} & a_{2n} & \cdots & a_{nn}\\ \end{bmatrix} A′=AT=⎣⎢⎢⎢⎡a11a12⋮a1na21a22⋮a2n⋯⋯⋱⋯an1an2⋮ann⎦⎥⎥⎥⎤且 A A A中的 n n n个正交基表示为: a 1 = [ a 11 a 21 ⋮ a n 1 ] a_1=\begin{bmatrix} a_{11} \\ a_{21} \\ \vdots \\ a_{n1} \\ \end{bmatrix} a1=⎣⎢⎢⎢⎡a11a21⋮an1⎦⎥⎥⎥⎤, a 2 = [ a 12 a 22 ⋮ a n 2 ] a_2=\begin{bmatrix} a_{12} \\ a_{22} \\ \vdots \\ a_{n2} \\ \end{bmatrix} a2=⎣⎢⎢⎢⎡a12a22⋮an2⎦⎥⎥⎥⎤,…, a n = [ a 1 n a 2 n ⋮ a n n ] a_n=\begin{bmatrix}a_{1n} \\ a_{2n} \\ \vdots \\ a_{nn} \\ \end{bmatrix} an=⎣⎢⎢⎢⎡a1na2n⋮ann⎦⎥⎥⎥⎤
矩阵 A A A用正交基表示为: A = [ a 1 a 2 ⋯ a n ] A=\begin{bmatrix} a_1 & a_2 & \cdots & a_n \\ \end{bmatrix} A=[a1a2⋯an] a i ′ = a i T = [ a 1 i a 2 i ⋯ a n i ] T a_i'=a_i^T=\begin{bmatrix} a_{1i} & a_{2i} & \cdots & a_{ni} \\ \end{bmatrix}^T ai′=aiT=[a1ia2i⋯ani]T正交变换表示为: a i ′ a j = ∑ k = 1 n a k i a k j = { c , i=j 0 , i ≠ j a'_ia_j=\sum_{k=1}^{n}a_{ki}a_{kj}=\begin{cases} c, \text{i=j}\\ 0, \text{i$\neq$j} \end{cases} ai′aj=k=1∑nakiakj={c,i=j0,i̸=j当取 c = 1 c=1 c=1时,该正交变换称为归一化正交变换
完备性
一个实值函数 f ( x ) f(x) f(x),可表示为: f ( x ) = ∑ n = 0 ∞ a n μ n ( x ) f(x)=\sum_{n=0}^{\infty}a_n\mu_n(x) f(x)=n=0∑∞anμn(x)其中 μ n ( x ) \mu_n(x) μn(x)为一组函数集, a n a_n an为加权系数
当 f ( x ) f(x) f(x)是平方可积的分段连续函数, ϵ \epsilon ϵ表示无穷小量时,若总存在一个正整数 N N N使得 ∫ − ∞ ∞ ∣ f ( x ) − f ^ ( x ) ∣ 2 d x < ϵ \int_{-\infty}^{\infty}|f(x)-\hat f(x)|^2\text{d}x < \epsilon ∫−∞∞∣f(x)−f^(x)∣2dx<ϵ其中 f ^ ( x ) \hat f(x) f^(x)为 f ( x ) f(x) f(x)的估计值: f ^ ( x ) = ∑ n = 0 N − 1 a n μ n ( x ) \hat f(x)=\sum_{n=0}^{N-1}a_n\mu_n(x) f^(x)=n=0∑N−1anμn(x)则称 μ n ( x ) \mu_n(x) μn(x)函数集是完备的。完备则意味着定义域中任何 f ( x ) f(x) f(x)均能用 μ n ( x ) \mu_n(x) μn(x)函数集表示。
一般来说,满足了正交性和完备性这两个条件的函数集合或矩阵才能用于图像处理与分析。也就是说我们所要寻找的正交变换的基函数一定是正交的,且所有的图像都可以用这个基函数表示。
二维正交变换
二维离散线性变换
二维离散线性变换由以下两个表达式给出:
F
(
μ
,
ν
)
=
∑
x
=
0
N
−
1
∑
y
=
0
N
−
1
f
(
x
,
y
)
g
(
x
,
y
,
μ
,
ν
)
,
0
⩽
μ
,
ν
⩽
N
−
1
F(\mu,\nu)=\sum_{x=0}^{N-1}\sum_{y=0}^{N-1}f(x,y)g(x,y,\mu,\nu),0\leqslant \mu,\nu\leqslant N-1
F(μ,ν)=x=0∑N−1y=0∑N−1f(x,y)g(x,y,μ,ν),0⩽μ,ν⩽N−1和
f
(
x
,
y
)
=
∑
μ
=
0
N
−
1
∑
ν
=
0
N
−
1
F
(
μ
,
ν
)
h
(
x
,
y
,
μ
,
ν
)
,
0
⩽
x
,
y
⩽
N
−
1
f(x,y)=\sum_{\mu=0}^{N-1}\sum_{\nu=0}^{N-1}F(\mu,\nu)h(x,y,\mu,\nu),0\leqslant x,y\leqslant N-1
f(x,y)=μ=0∑N−1ν=0∑N−1F(μ,ν)h(x,y,μ,ν),0⩽x,y⩽N−1其中,
g
(
x
,
y
,
μ
,
ν
)
g(x,y,\mu,\nu)
g(x,y,μ,ν)称为正变换核函数或
N
2
∗
N
2
N^2*N^2
N2∗N2阶的正变换核矩阵,
h
(
x
,
y
,
μ
,
ν
)
h(x,y,\mu,\nu)
h(x,y,μ,ν)称为逆变换核函数或
N
2
∗
N
2
N^2*N^2
N2∗N2阶的逆变换核矩阵。
若核函数满足: g ( x , y , μ , ν ) = P ( x , μ ) Q ( y , ν ) g(x,y,\mu,\nu)=P(x,\mu)Q(y,\nu) g(x,y,μ,ν)=P(x,μ)Q(y,ν) h ( x , y , μ , ν ) = R ( x , μ ) S ( y , ν ) h(x,y,\mu,\nu)=R(x,\mu)S(y,\nu) h(x,y,μ,ν)=R(x,μ)S(y,ν)则称核函数是可分离的,核函数的可分离性质使得二维变换可以分步计算、降低计算的复杂度。分步计算步骤如下:
- 首先沿 f ( x , y ) f(x,y) f(x,y)的 y y y方向做一维变换,有 F ( x , ν ) = ∑ y = 0 N − 1 f ( x , y ) Q ( y , ν ) , 0 ⩽ x , ν ⩽ N − 1 F(x,\nu)=\sum_{y=0}^{N-1}f(x,y)Q(y,\nu),0\leqslant x,\nu\leqslant N-1 F(x,ν)=y=0∑N−1f(x,y)Q(y,ν),0⩽x,ν⩽N−1
- 然后沿 F ( x , ν ) F(x,\nu) F(x,ν)的 x x x方向做一维变换,得到: F ( μ , ν ) = ∑ x = 0 N − 1 F ( x , ν ) P ( x , μ ) , 0 ⩽ μ , ν ⩽ N − 1 F(\mu,\nu)=\sum_{x=0}^{N-1}F(x,\nu)P(x,\mu),0\leqslant\mu,\nu\leqslant N-1 F(μ,ν)=x=0∑N−1F(x,ν)P(x,μ),0⩽μ,ν⩽N−1
若可分离核函数满足 P ( x , μ ) = Q ( y , ν ) P(x,\mu)=Q(y,\nu) P(x,μ)=Q(y,ν),则该可分离核函数是加法对称的,即 x x x、 y y y两个方向上的变化一致。
因此可分离的二维离散线性变换的表达式可以表示为: F ( μ , ν ) = ∑ y = 0 N − 1 [ ∑ x = 0 N − 1 P ( x , μ ) f ( x , y ) ] Q ( y , ν ) , 0 ⩽ μ , ν ⩽ N − 1 F(\mu,\nu)=\sum_{y=0}^{N-1}[\sum_{x=0}^{N-1}P(x,\mu)f(x,y)]Q(y,\nu),0\leqslant \mu,\nu\leqslant N-1 F(μ,ν)=y=0∑N−1[x=0∑N−1P(x,μ)f(x,y)]Q(y,ν),0⩽μ,ν⩽N−1若图像向量 f f f是由基矢量 f i f_i fi逐行串接形成的,对应的正变换矩阵为: F = P f Q T F=PfQ^T F=PfQT若图像向量 f f f是由基矢量 f i f_i fi逐列串接形成的,对应的正变换矩阵为: F = Q f P T F=QfP^T F=QfPT
二维离散线性变换的基图像
对于二维离散线性变换 f ( x , y ) = ∑ μ = 0 N − 1 ∑ ν = 0 N − 1 F ( μ , ν ) h ( x , y , μ , ν ) , 0 ⩽ x , y ⩽ N − 1 f(x,y)=\sum_{\mu=0}^{N-1}\sum_{\nu=0}^{N-1}F(\mu,\nu)h(x,y,\mu,\nu),0\leqslant x,y\leqslant N-1 f(x,y)=μ=0∑N−1ν=0∑N−1F(μ,ν)h(x,y,μ,ν),0⩽x,y⩽N−1其变换核矩阵 h ( x , y , μ , ν ) h(x,y,\mu,\nu) h(x,y,μ,ν)可以将其视为一幅图像,称其为基图像。任何一个图像 f ( x , y ) f(x,y) f(x,y)都可以表示为基图像 h ( x , y , μ , ν ) h(x,y,\mu,\nu) h(x,y,μ,ν)的线性组合,其中 F ( μ , ν ) F(\mu,\nu) F(μ,ν)为加权系数。
对另一个表达式 F ( μ , ν ) = ∑ x = 0 N − 1 ∑ y = 0 N − 1 f ( x , y ) g ( x , y , μ , ν ) , 0 ⩽ μ , ν ⩽ N − 1 F(\mu,\nu)=\sum_{x=0}^{N-1}\sum_{y=0}^{N-1}f(x,y)g(x,y,\mu,\nu),0\leqslant \mu,\nu\leqslant N-1 F(μ,ν)=x=0∑N−1y=0∑N−1f(x,y)g(x,y,μ,ν),0⩽μ,ν⩽N−1同理。