1、均值濾波
直接用元素全為1的核與圖像卷積求均值得到中心像素的修改值。
#blur平均值去噪,均值濾波 #簡單的平均卷積操作 img=cv2.imread("noise.jpg")
blur = cv2.blur(img,(3,3)) cv2.imshow("original",img) cv2.imshow("changed",blur) cv2.waitKey(0) cv2.destroyAllWindows()
將核大小改為(1,50)和(50,1)的到下圖
2、方框濾波(比均值濾波多一個參數)
#方框濾波 #normalize為True時與blur相同 #normalize為Flase是可能發生越界 box=cv2.boxFilter(img,-1,(3,3),normalize=True) cv2.imshow("original",img) cv2.imshow("changed",box) cv2.waitKey(0) cv2.destroyAllWindows()
3、高斯濾波
#高斯濾波 #構造權重矩陣 aussian = cv2.GaussianBlur(img,(21,21),1) cv2.imshow("original",img) cv2.imshow("aussian",aussian) cv2.waitKey(0) cv2.destroyAllWindows()
越靠近中心點的權重越大,核的大小必須是奇數,否則會報錯。
將方框濾波和高斯濾波放一起對比,將核大小調大一點(21,21)
4、中值濾波
#中值濾波 median = cv2.medianBlur(img,5) cv2.imshow("original",img) cv2.imshow("median",median) cv2.waitKey(0) cv2.destroyAllWindows()
輸入參數為圖片,及核大小,行和列相等,且為奇數。