双边滤波器原理简述及C++实现
一、文章简介
本文主要简述双边滤波器原理,尽可能通俗易懂,最后用C++实现双边滤波器,加深对原理及公式的理解。
双边滤波器和高斯滤波器效果对比:
二、双边滤波器原理
图像处理中,滤波是必不可少,常见的滤波有均值,中值和高斯,这三种滤波算法,都是各项同性滤波算法,即每一个像素点,都采用相同的滤波属性,结构(边缘等细节)和非结构(平滑区域)操作是完全一样的,在去噪的同时,图像细节信息会丢失,造成图像模糊。
双边滤波器(bilateral filter)在边缘和平滑区域的处理是不一样的。顾名思义,双边,就是滤波系数考虑两种因素,一边是空间属性,一边是像素属性,即两个权重,一个权重根据邻域距离计算,另一个权重根据邻域像素值确定,最终两个权重相乘为一个权重。
公式如下:
对于位置为