二维高斯核是如何生成的
以模糊半径 (
σ
=
1.5
\sigma=1.5
σ=1.5) 为1.5的高斯核为例,其权重矩阵为:
m
2
=
[
0.09474166
0.11831801
0.09474166
0.11831801
0.14776132
0.11831801
0.09474166
0.11831801
0.09474166
]
m_2= \left[ \begin{matrix} 0.09474166 & 0.11831801 & 0.09474166 \\ 0.11831801 & 0.14776132 & 0.11831801 \\ 0.09474166 & 0.11831801 & 0.09474166 \\ \end{matrix} \right]
m2=⎣⎡0.094741660.118318010.094741660.118318010.147761320.118318010.094741660.118318010.09474166⎦⎤
其生成过程为,首先生成一维高斯核,
σ
=
1.5
\sigma=1.5
σ=1.5。则一维高斯核
m
1
=
[
0.30780133
,
0.38439734
,
0.30780133
]
m_1=[0.30780133, 0.38439734, 0.30780133]
m1=[0.30780133,0.38439734,0.30780133]
则对应的
σ
=
1.5
\sigma=1.5
σ=1.5的二维高斯核
m
2
=
m
1
T
⋅
m
1
m_2=m_1^T \cdot m_1
m2=m1T⋅m1
这也说明了其实二维独立高斯分布是可以由一维高斯分布生成的。独立说明二维分布的概率是可以由两个一维分布概率相乘得来,对应上面的二维高斯核生成公式。
如何以线性时间复杂度执行二维高斯模糊
仍以上面的
m
1
,
m
2
m_1,m_2
m1,m2为例子,假设图像的一个
3
×
3
3\times 3
3×3的局部区域为:
I
=
[
a
11
a
12
a
13
a
21
a
22
a
23
a
31
a
32
a
33
]
I= \left[ \begin{matrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31}& a_{32} & a_{33} \\ \end{matrix} \right]
I=⎣⎡a11a21a31a12a22a32a13a23a33⎦⎤
先对
I
I
I执行一维水平高斯核
m
1
m_1
m1,得到:
I
1
=
[
m
1
⋅
[
a
11
,
a
12
,
a
13
]
T
m
1
⋅
[
a
21
,
a
22
,
a
23
]
T
m
1
⋅
[
a
31
,
a
32
,
a
33
]
T
]
I_1= \left[ \begin{matrix} m_1\cdot [a_{11} , a_{12} , a_{13}]^T \\ m_1\cdot [a_{21} , a_{22} , a_{23}]^T \\ m_1\cdot [a_{31} , a_{32} , a_{33}]^T \\ \end{matrix} \right]
I1=⎣⎡m1⋅[a11,a12,a13]Tm1⋅[a21,a22,a23]Tm1⋅[a31,a32,a33]T⎦⎤
再对
I
1
I_1
I1执行垂直高斯核
m
1
T
m_1^T
m1T,得到:
I
2
=
I
1
T
⋅
m
1
T
I_2=I_1^T\cdot m_1^T
I2=I1T⋅m1T
I
2
I_2
I2现在为一个数,且等于直接将
I
I
I与二维高斯核
m
2
m_2
m2作高斯模糊。因此二维高斯模糊可以以线性时间完成,这当
m
2
m_2
m2的尺寸很大时,是可以节省很多时间的。