一. 均值濾波簡介和原理
均值濾波,是圖像處理中常用的手段,從頻率域觀點來看均值濾波是一種低通濾波器,高頻信號將會去掉。均值濾波可以幫助消除圖像尖銳噪聲,實現圖像平滑,模糊等功能。理想的均值濾波是用每個像素和它周圍像素計算出來的平均值替換圖像中每個像素。
以3*3均值濾波器為例,均值濾波器算法原理如下圖:


二. 用均值濾波器對椒鹽噪聲污染后的圖像去噪
python 源碼:
import cv2 import numpy as np # mean filter def mean_filter(img, K_size=3): H, W, C = img.shape # zero padding pad = K_size // 2 out = np.zeros((H + pad * 2, W + pad * 2, C), dtype=np.float) out[pad: pad + H, pad: pad + W] = img.copy().astype(np.float) tmp = out.copy() # filtering for y in range(H): for x in range(W): for c in range(C): out[pad + y, pad + x, c] = np.mean(tmp[y: y + K_size, x: x + K_size, c]) out = out[pad: pad + H, pad: pad + W].astype(np.uint8) return out # Read image img = cv2.imread("../paojie_sp1.jpg") # Mean Filter out = mean_filter(img, K_size=5) # Save result cv2.imwrite("out.jpg", out) cv2.imshow("result", out) cv2.waitKey(0) cv2.destroyAllWindows()
三. 實驗結果:

原圖 ↑

模板大小5*5,均值濾波后的圖像 ↑
可以看到,均值濾波后,圖像中噪聲雖然有所減弱,但是圖像變模糊了。因為均值濾波器過濾掉了圖像中的高頻分量,所以圖像的邊緣都變模糊了。(去除一定量椒鹽噪聲,可以考慮使用中值濾波)
四. 參考內容: