創建項目 | 文件與顯示 | 像素操作 | 圖像彩色類型轉換 | 模糊、平滑、去噪 | 銳化、邊緣檢測 | 二值化 | 形態學 | 位置變換 | 直方圖 | 霍夫變換 | 圖像優化 | 圖像分割
這一章的模糊處理,以及下一章的銳化處理,其實絕大部分都是用一個核跟圖像做卷積,使用的核不一樣,效果就不一樣。
一、均值濾波
均值濾波使用的核是全1核,再歸一化。如五階核:
Mat src = new Mat(img_lenna, ImreadModes.Grayscale);
Mat result = new Mat();
Cv2.Blur(src, result, new OpenCvSharp.Size(5, 5));
result.SaveImage(img_result);
效果如下:
二、中值濾波
中值濾波並不是跟核卷積,而是取核範圍內像素的中位數。中值濾波處理椒鹽噪聲有顯著效果。
Mat src = new Mat(img_noise);
Mat result = new Mat();
Cv2.MedianBlur(src, result, 3);
result.SaveImage(img_result);
效果如下:
三、高斯濾波
高斯濾波所所用的核使用高斯函數進行近似,一個5*3的核如下圖所示:
Mat src = new Mat(img_lenna);
Mat result = new Mat();
Cv2.GaussianBlur(src, result, new OpenCvSharp.Size(3, 5), 0);
result.SaveImage(img_result);
效果如下:
四、雙邊濾波
雙邊濾波相較於高斯濾波,能更好的保留邊緣信息。
Mat src = new Mat(img_lenna);
Mat result = new Mat();
Cv2.BilateralFilter(src, result, 5, 10, 2);
result.SaveImage(img_result);
效果如下: