在讲双边滤波之前,狼哥还讲了类似的一些图像滤波算法,比如均值滤波,中值滤波,高斯滤波,以及导向滤波。具体链接如下:FPGA图像处理入门—part5.均值滤波,FPGA图像算法.中值滤波,FPGA图像算法.高斯滤波原理和实现,FPGA图像算法.导向滤波。
在讲双边滤波前,先再补充下高斯滤波的一些内容,以方便后面的理解和查阅。
高斯函数在图像滤波、边缘检测等中发挥着重要的作用。高斯滤波是典型的低通滤波,对图像有平滑作用。同时,高斯函数的一阶、二阶导数也可以用于高通滤波,比如canny算子中用到的是高斯函数的一阶导数,LOG算子中用到的是高斯函数的二阶导数。下面逐一梳理了高斯函数一维和二维的定义以及一阶和二阶导数的公式。
一维高斯函数:
在图像处理中,二维高斯函数的一阶梯度和二阶梯度的定义为:
将梯度函数进行离散,可以得到一阶和二阶的梯度算子,使用这些算子与图像进行卷积,可以求取图像的一阶、二阶梯度以及各方向梯度。====================================分割线
说完了高斯的内容,狼哥来说说双边滤波,双边滤波是建立在高斯的基础上的。高斯滤波是以距离为权重,设计滤波模板作为滤波系数,只考虑了像素间的空间位置上的关系,因此滤波的结果会丢失边缘的信息。高斯滤波的缺陷如下图所示:平坦区域正常滤波,图像细节没有变化,而在突变的边缘上,因为只使用了距离来确定滤波权重,导致边缘被模糊。在高斯基础上,进一步优化,叠加了像素值的考虑,因此也就引出了双边滤波,一种非线性滤波,滤波效果对保留边缘更有效。
为了理解双边滤波的距离和像素差两个影响因素,先说明下面两个概念帮助理解。灰度距离:当前点距离滤波模板中心点的灰度的差值的绝对值。双边滤波的核函数是空间域核与像素范围域核的综合结果:1)在图像的平坦区域,像素值变化很小,那么像素差值接近于0,对应的像素范围域权重接近于1,此时空间域权重起主要作用,相当于进行高斯模糊;2)在图像的边缘区域,像素值变化很大,那么像素差值大,对应的像素范围域权重变大,即使距离远空间域权重小,加上像素域权重总的系数也较大,从而保护了边缘的信息。双边滤波的效果如下图,在突变的边缘上,使用了像素差权重,所以很好的保留了边缘。文章图片来自参考文章,如有侵权联系删除
参考文章链接:
一维和二维高斯函数及其一阶和二阶导数 - 知乎 (zhihu.com)
双边滤波算法 - 啊哈彭 - 博客园 (cnblogs.com)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。