1,中值滤波
中值滤波 : 是一种非线性滤波,使用像素点领近点的的灰度值的中值代替改点的灰度值,
          可以去除脉冲噪声跟椒盐噪声.
public static void MedianBlur(InputArray src, OutputArray dst, int ksize);
ksize : 改参数必须大于1,且为奇数
Mat src = new Mat(@"I:\OpenCvSharp学习\3副本.jpg", ImreadModes.AnyColor);Mat dst1 = new Mat();Window srcWin = new Window("src", WindowMode.AutoSize, src);Cv2.MedianBlur(src,dst1,11);Window dstWin1 = new Window("dst1", WindowMode.AutoSize, dst1);Cv2.WaitKey(0);
本例所示将源图的白点都消除了
 
2, 双边滤波
双边滤波是一种非线性滤波器,是结合图像空间邻近度和像素值相似度的一种折中处理,尽量在降噪的同时保存边缘
public static void BilateralFilter(InputArray src,OutputArray dst,int d,double sigmaColor,double sigmaSpace,BorderTypes borderType = BorderTypes.Reflect101);
src:    输入原图
dst:    输出图
d:    在滤波过程中使用的每个像素邻域的直径
sigmaColor:    在颜色空间中过滤sigma。该参数值越大,表示像素邻域内更多的颜色会混合在一起,从而产生更大的半均等颜色区域
sigmaSpace: 在坐标空间中过滤。参数值越大,越远的像素会相互影响(只要它们的颜色足够接近;见sigmaColor)。然后d>0,它指定的邻域大小与sigmspace无关,否则d与sigmspace成比例
borderType : 一般是用默认值
Mat src = new Mat(@"I:\OpenCvSharp学习\3副本.jpg", ImreadModes.AnyColor);Mat dst1 = new Mat();Window srcWin = new Window("src", WindowMode.AutoSize, src);Cv2.BilateralFilter(src,dst1,100,100.0,10.0);Window dstWin1 = new Window("dst1", WindowMode.AutoSize, dst1);Cv2.WaitKey(0);

