bilateralFilter(InputArray src, OutputArray dst, int d, double sigmaColor, double sigmaSpace,int borderType=BORDER_DEFAULT );
void GaussianBlur(InputArray src, OutputArray dst, Size ksize, double sigmaX, double sigmaY=0, int borderType=BORDER_DEFAULT );注意ksize的宽和高必须是奇数
void buffing(int value1,int value2) { int dx = value1*5; //双边滤波参数之一 double fc = value1*12.5; //双边滤波参数之一 int p = 50;//透明度 Mat temp1,temp2,temp3,temp4; //双边滤波 bilateralFilter(src, temp1, dx, fc, fc); temp2 = (temp1 - src + 128); //高斯模糊 GaussianBlur(temp2, temp3, Size(2*value2 - 1, 2*value2 - 1), 0, 0); temp4 = src + 2*temp3 - 255; dst = ( src*(100-p) + temp4*p ) / 100; }
神奇的效果图