双边滤波器用于平滑图像并减少噪声,同时保留边缘,是一种非线性双边滤波器。双边滤波的核函数是空间域核与像素范围域核的综合结果:
在平坦区域,临近像素的像素值的差值较小,对应值域权重接近于1,此时空域权重起主要作用,相当于直接对此区域进行高斯模糊。因此,平坦区域相当于进行高斯模糊。
在边缘区域,临近像素的像素值的差值较大,对应值域权重接近于0,导致此处核函数下降(因),当前像素受到的影响就越小,从而保持了原始图像的边缘的细节信息。
总体而言,在像素强度变换不大的区域,双边滤波有类似于高斯滤波的效果,而在图像边缘等强度梯度较大的地方,可以保持梯度。
代码:
#双边滤波 可以实现美颜效果
import cv2
import numpy as np
meng=cv2.imread('./meng.PNG')
img=cv2.bilateralFilter(meng,7,sigmaColor=20,sigmaSpace=50)
cv2.imshow('img',np.hstack((meng,img)))
key=cv2.waitKey(0)
cv2.destroyAllWindows()