bilateralFilter 双边滤波,众多滤波函数的一种。
双边滤波器是什么?
双边滤波(Bilateral filter)是一种可以保边去噪的滤波器。之所以可以达到此去噪效果,是因为滤波器是由两个函数构成。一个函数是由几何空间距离决定滤波器系数。另一个由像素差值决定滤波器系数。可以与其相比较的两个filter:高斯低通滤波器(http://en.wikipedia.org/wiki/Gaussian_filter)和α-截尾均值滤波器(去掉百分率为α的最小值和最大之后剩下像素的均值作为滤波器),
函数原型:
void bilateralFilter(InputArray src, OutputArray dst, int d, double sigmaColor, double sigmaSpace,
int borderType=BORDER_DEFAULT )
第一个和第二个参数是输入输出图像;
第三个参数是计算的半径,半径之内的像数都会被纳入计算,如果提供-1,会从后面的参数sigmaSpace中自动计算。
第三个和第四个参数是计算图像的颜色和空间偏移量。
最后一个就是边框了。
一般来说,要想得到比较好的结果,3、4、5参数最好都指定。
第三个参数如果设定值大于5,那计算会很慢,所以一般设置都等于5,如果少数情况需要去除比较大的噪声,那么d=9,。
使用例子:
bilateralFilter(src,dst,5,5*2,5/2);
参考:
http://blog.csdn.net/abcjennifer/article/details/7616663