1、保边滤波布景
保边滤波器的代表包含双方滤波、引导滤波,但是这类滤波器有一个问题,它们均将待处理的像素点放在了方形滤波窗口的中心。但假如待处理的像素坐落图画纹路或者边际,方形滤波核卷积的处理成果会导致这个边际变含糊。
根据这个观察,《Side Window Filtering》的作者提出了侧窗滤波,改善边际被滤波含糊的现象。
2、侧窗滤波原理剖析
由于传统办法都运用全窗口回归,也便是把窗的中心方位放在待处理像素的方位。即便是用非线性各向异性加权,依然无法杜绝沿着图画边际的法向分散(或许仅仅沿着边际的分散比较大,而沿着法线的分散的比较小,比较小也是分散,这是传统办法不保边的实质原因)。
根据这一剖析,把窗口的边际直接放在待处理像素的方位呢?就切断了或许的法线方向的分散。这便是这篇文章的中心思维。
有人或许会说:这跟双方滤波的空间加权和灰度值加权非常像啊!但其实还是有实质的区别。咱们的办法实质上切断了法向分散,而不是像之前的保边算法那样仅仅是削减了法向分散。因此,咱们的办法从数学原理上就能够保证保边。而之前的办法实质上是不能保边的。
以上内容摘抄作者发的文章: zhuanlan.zhihu.com/p/58326095
3、侧窗滤波算法
常见的滤波算法都是创建方形滤波核,滤波核中心移动到待处理像素进行卷积。比方均值滤波、盒子滤波核和高斯滤波等,滤波处理成果I_{i}是像素的邻域窗口内像素加权求和成果。
其间,Omega_{i}是像素i的邻域窗口,w_{ij}是权重,q是输入图画,I是滤波输出图画,q_{j}是邻域像素值
影响滤波成果的是w权重巨细、滤波窗口巨细形状等。
当像素在边际,邻域窗口的挑选应该在与边际处在同一侧,不能跨过边际,提出边际保持的侧窗滤波算法。将每个方针像素视为潜在边际,并在其周围生成多个局部窗口(称为侧窗口),每个窗口将方针像素与窗口的一侧或角(而不是中心)对齐。
这篇文章的中心思维:将待处理的像素置于滤波窗口的某个适宜的边际,使得滤波窗口尽或许地坐落边际的一侧,切断了或许的法线方向的分散
4、侧窗滤波算法实现
具体到一个像素怎么挑选哪一个方向?横平竖直的子窗口能够利用可分离滤波来加速核算。能够利用堆叠的子窗口来削减重复核算。所以,终究的核算量仅仅本来滤波器的2到3倍。
定义的侧窗(Side Window),包含参数theta、gamma、rho,参数theta是窗口与水平线的夹角,gamma为窗口半径,rho作为操控窗口长度的参数且∈{0,r}rhoin {0,r}。
如上图所示,侧窗能够根据参数theta、gamma、rho等参数进行调整。
通过改变theta的值咱们便能操控窗口的朝向进而决定将窗口的哪一条边放在待处理像素之上。在gamma固定的情况下,操控rho的巨细就能操控窗口纵向的长度。
为了保证待处理像素(x,y)必定坐落窗口边际或者边角处,直接枚举8个或许的方向。L、R、U、D、NW、NE、SW、SE,分别是左、右、上、下、西南、西北、东南、东北。这8类特定的窗口,核算8个窗口的滤波成果,比照原始值最挨近的挑选那个为最佳的方向。保存边际意味着咱们希望最小化边际处输入和输出之间的间隔,即滤波器输出应与边际处的输入相同或尽或许挨近。
8个方向滤波窗口暗示如下图:
=rrho=r时,得到窗口L、R、U、D,当=0rho=0时,不同theta对应不同侧窗,见下图。
使用滤波核F在不同的侧窗窗口,都得到滤波输出Ii,,I_{i}^{theta,rho,gamma},需求满足=k∗/2,k∈[0,3]且∈{0,r}theta=k*pi/2,kin[0,3]且rhoin{0,r}
对于某一像素(x,y),它的侧窗数量能够是无穷多个,咱们只选取8个便于核算的特殊视点的窗口,然后再通过比较各个窗口处理的作用终究选出最适宜的窗口。
根据这种side window的思维,咱们能够把传统的Box Filter,Gaussian Filter,median Filter,Bilateral Filter,Guided Filter等等都变成Side Window版本。
5、侧窗滤波算法使用
以 box滤波为例,交融侧窗滤波的为 S-box。普通box边际被含糊,sbox更保边。对不同类型的边际进行滤波处理,边际包含以下几种,见图示:
a)gvertical edge (垂直边际)
d)horizontal edge(水平边际)
g)diagonal edge(对角边际)
j)corner(角边际)
m)ramp edge (斜坡边际)
p)roof edge(屋顶边际)
下图时BOX和s-box的核算成果
综上,能够得到,不同的侧窗类型能够获得不同的成果。
- L、NW、SW侧窗口能够保存the edges on the left of the vertical edge(垂直边际左边的边际)。很简单推断出R、NE、SE侧窗口能够保存the edges on the right of the vertical edge(垂直边际右侧的边际)。
- U、NW、NE侧窗口能够保存the edges above the horizontal edge(水平边际以上的边际)。相同,很简单证明D、SW、SE侧窗能够保存the edges below the horizontal edge(水平边际以下的边际)。
- NW侧窗口能够保存edges above the diagonal edge and on the corner(对角线边际上方和角落上的边际)。很简单推断出,NE、SW、SE侧窗能够保存diagonal edges and corner with other directions(与其他方向的对角边和角)。
- L、NW和SW侧窗能够保存ramp edge。
- 侧窗处理roof edge的作用相对较差
6、侧窗滤波算法仿真
仿真实验,将侧窗技术嵌入到高斯滤波器、中值滤波器、双方滤波器和导频滤波器等中,仿真成果见下图,比照改善后作用提高程度。
除此之外还有其他使用场景(比方平滑,HDR使用,结构纹路分解,深度估计,上颜色等),这里就不展示了,交融侧窗滤波思路的作用更好一些,感兴趣的能够看看原文。
参阅文章: