均值濾波是圖像處理中常用的手段。從頻域的角度來看,均值濾波是低通濾波器,高頻信號會被去除。均值濾波可以幫助消除圖像的尖銳噪聲,實現圖像平滑和模糊的功能。理想的平均濾波是將圖像中的每個像素替換為每個像素與其周圍像素計算的平均值。
以3*3平均濾波器為例,平均濾波器的算法原理如下:
2.用均值濾波器去除椒鹽噪聲汙染的圖像。
Python源代碼:
導入cv2
將numpy作為np導入
#均值濾波器
def均值_濾波器(img,K_size=3):
h,W,C = img.shape
#零填充
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()
#過濾
對於範圍(H)中的y:
對於範圍(W)中的x:
對於範圍(C)內的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)
退回去
#讀取圖像
img = cv2.imread("../paojie_sp1.jpg ")
#均值濾波器
out =均值濾波器(img,K_size=5)
#保存結果
cv2.imwrite("out.jpg ",out)
cv2.imshow("結果",out)
cv2.waitKey(0)
cv2.destroyAllWindows()
三。實驗結果:
可以看出,圖像中的噪聲減弱了,但均值濾波後圖像變得模糊。因為平均濾波器濾除了圖像中的高頻成分,所以圖像的邊緣是模糊的。(要去除壹定量的椒鹽噪聲,可以考慮使用中值濾波。)
四。參考內容:
blogs.com/wojianxin/p/12501891.html