导向图滤波

记引导图为 G G G,被滤波的图像为 X X X,输出图像为 Y Y Y,导向图滤波的目标就是使得原始的输入 X X X和输出 Y Y Y尽可能相同,同时纹理部分与引导图 G G G相似。

对于目标1:输入图像 X X X和输出图像 Y Y Y尽可能相似,可以用公式描述为:
min ⁡ ∑ i ∈ W k ∣ X i − Y i ∣ 2 (1) \min\sum_{i \in W_k}|X_i-Y_i|^2 \tag{1} miniWkXiYi2(1)
对于目标2:输出图像 Y Y Y的纹理和引导图 G G G尽可能相似,用公式描述为:
∇ Y = a ∇ G (2) \nabla Y=a\nabla G \tag{2} Y=aG(2)
上式中如果Y为单通道图像, G G G为多通道,那么 a a a为一个向量;如果 Y Y Y G G G通道数相同,那么 a a a为标量或者对角矩阵。显然, a a a的值越小,最后的输出图像也就越平滑。

对于目标2,假设参数 a a a在小范围内变化较小,近似认为是常数,可以对等式两边取定积分,从而得到:
Y = a G + b (3) Y=aG+b \tag{3} Y=aG+b(3)
上式中参数 a a a b b b实际是与位置有关的变量,可以考虑在一个小窗口 W k W_k Wk内其为常数 a k a_k ak b k b_k bk,将上式带人到目标1中可以得到最终的优化形式为:
* ⁡ a r g m i n a , b   ∑ i ∈ W k ( ∣ G i T a k + b k − X i ∣ 2 + ε 2 a k 2 ) (4) \operatorname*{argmin}_{a,b}\,\sum_{i\in W_k}(|G_i^Ta_k+b_k-X_i|^2+\varepsilon^2a_k^2) \tag{4} *argmina,biWk(GiTak+bkXi2+ε2ak2)(4)
上式中的 ε \varepsilon ε是一个用于防止参数 a a a过小而引入的常数

对变量 a , b a,b a,b分别求偏导得到:
∑ i ∈ W k ( G i ( G i T a k + b k − X i ) + ε 2 a k ) = 0 (5) \qquad \sum_{i \in W_k}\left(G_i(G_i^Ta_k+b_k-X_i)+\varepsilon^2a_k\right)=0 \tag{5} iWk(Gi(GiTak+bkXi)+ε2ak)=0(5)
∑ i ∈ W k ( G i T a k + b k − X i ) = 0 (6) \sum_{i \in W_k}\left(G_i^Ta_k+b_k-X_i\right)=0 \tag{6} iWk(GiTak+bkXi)=0(6)
解得:
a k = ( G G T ‾ − G ˉ G ˉ T + ε 2 I ) − 1 ( G X ‾ − G ˉ X ˉ ) (7) a_k={\rm (\overline{GG^T}-\bar{G}\bar{G}^T+\varepsilon^2I)^{-1}(\overline{GX}-\bar{G}\bar{X})} \tag{7} ak=(GGTGˉGˉT+ε2I)1(GXGˉXˉ)(7)
b k = X ˉ − G ˉ T a k (8) b_k={\rm \bar{X}-\bar{G}^T}a_k \tag{8} bk=XˉGˉTak(8)

上式带有上划线的变量,表示在窗口 W k W_k Wk内求平均值,有时为了滤波结果更加平滑,可以在求出整张图像每个点处的 a k , b k a_k,b_k ak,bk后,分别对这两个参数进行均值滤波,得到:

a ˉ k = 1 ∣ W k ∣ ∑ i ∈ W k a i , b ˉ k = 1 ∣ W k ∣ ∑ i ∈ W k b i \bar{a}_k=\frac{1}{|W_k|}\sum_{i \in W_k}a_i,\qquad\qquad \bar{b}_k=\frac{1}{|W_k|}\sum_{i \in W_k}b_i aˉk=Wk1iWkai,bˉk=Wk1iWkbi

最终的滤波公式为:
Y = a ˉ k G + b ˉ k    (9) Y=\bar{a}_kG+\bar{b}_k \; \tag{9} Y=aˉkG+bˉk(9)

如果输入图像和导向图均为单通道,那么公式(7)(8)可以简化为:
a k = G X ‾ − G ˉ X ˉ G 2 ‾ − G ˉ 2 + ε 2 = c o v ( G , X ) σ G 2 + ε 2 (10) a_k={\rm \frac{\overline{GX}-\bar{G}\bar{X}}{\overline{G^2}-\bar{G}^2+\varepsilon^2}=\frac{cov(G,X)}{\sigma_G^2+\varepsilon^2}} \tag{10} ak=G2Gˉ2+ε2GXGˉXˉ=σG2+ε2cov(G,X)(10)

b k = X ˉ − G ˉ a k (11) b_k={\rm \bar{X}-\bar{G}}a_k \tag{11} bk=XˉGˉak(11)

如果导向图 G G G,和输入图像 X X X是同一个,那么不对 a k , b k a_k,b_k ak,bk做均值滤波的导向图滤波可以写为:
Y = σ 2 X + ε 2 X ‾ σ 2 + ε 2   , σ 2 = X 2 ‾ − X ‾ 2 (12) Y=\frac{\sigma^2X+\varepsilon^2\overline{X}}{\sigma^2+\varepsilon^2} \,,\qquad\qquad \sigma^2=\overline{X^2}-\overline{X}^2 \tag{12} Y=σ2+ε2σ2X+ε2X,σ2=X2X2(12)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值