opencv4.5.1自学(6)——非线性滤波

1、中值滤波

中值滤波能在去除脉冲噪声、椒盐噪声的同时又能保留图像边缘细节,不过花费的时间较长。
opencv中函数原型:

CV_EXPORTS_W void medianBlur(InputArray src,OutputArray dst, int ksize)

第一个参数为输入图像,第二个参数为输出图像,第三个参数为孔径的尺寸,即像素领域。
使用实例:

//载入原图
Mat image=imread("1.jpg");
//进行中值滤波操作
Mat out;
medianBlur( image, out, 7);

2、双边滤波

双边噪声可以报存边沿的像素值,但不能将高频噪声清除干净。
opencv4.5.1自学(6)——非线性滤波_第1张图片
加权系数w(i,j,k,l)取决于定义域核和值域核的乘积。
即:在这里插入图片描述
opencv中参数原型:

CV_EXPORTS_W void bilateralFilter(InputArray src, OutputArraydst, int d, double sigmaColor, double sigmaSpace, int borderType=BORDER_DEFAULT)

第三个参数为像素领域的直径,第四个参数是颜色空间滤波器的sigma值,这个参数的值越大,就表明该像素邻域内有更宽广的颜色会被混合到一起,第五个参数坐标空间中滤波器的sigma值,数值越大,意味着越远的像素会相互影响。
调用实例:

//载入原图
Mat image=imread("1.jpg");
//进行双边滤波操作
Mat out;
bilateralFilter( image, out, 25, 25*2, 25/2 );

你可能感兴趣的:(opencv,opencv)