一种新颖的保边滤波——Sub Window Filtering

分享2019 CVPR的一篇图像滤波算法论文。这个算法的新颖之处在于:不管传统的滤波器保不保边,运用了Side Window后都可以保边。

基本思路

经典滤波算法基本都是:以某个像素点为中心,按照滤波半径,把这个包括像素点和其邻域加权线性组合得到输出,一般公式如下:
在这里插入图片描述
Ω是以像素点 i 为中心的滤波窗口,w是滤波权值,q是原图像素值,I’是输出结果。但是这样以一个像素为中心去滤波会导致的问题是,如果一个像素点处在边缘位置(这里的边缘不是指图片的大小边界,而是指图像中物体的边缘)的话,以像素为中心去滤波会导致滤波结果的边缘部分变模糊。
论文中为了分析方便讨论了三种典型的边缘,分别是图中的 (a)阶梯状边缘、(b)斜坡状边缘和©屋顶状边缘。
在这里插入图片描述

根据泰勒展开公式分析,得出结论:如果一个像素点处于图像中的边缘位置,那么滤波的时候就应该把滤波器的边缘和该像素点对齐,而不是把滤波器的中心和该像素点对齐。受此启发,论文作者提出了一个新的保边滤波策略:就是把每个滤波像素点都当成是潜在的边缘点,然后对于每个待滤波的像素点,生成几种不同的滤波子窗口,然后把这些滤波窗口的边缘或者角点位置和该像素点对齐,然后滤波得到结果,最后根据把这些子窗口的滤波之后的最佳重构结果作为最终的滤波结果。
文中提出了8个方向的滤波窗口,分别是上、下,左、右、左上、右上、左下和右下
在这里插入图片描述

side window filter 的核心算法流程如下:
在这里插入图片描述

论文中又详细分析了 box filter 和 side window box filter 对于上面提到的三种经典边缘的滤波之后的保留情况。文中给出分析的图表如下:
在这里插入图片描述

论文中的一些效果图
在这里插入图片描述

代码实现

用C++和OpenCV实现Sub WIndow Filter 与均值滤波的结合算法。对下图进行滤波
在这里插入图片描述
迭代十次的均值滤波
在这里插入图片描述
迭代十次,加了Sub Window Filtering 的均值滤波在这里插入图片描述

需要源代码的,请关注+点赞+留言。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值