1.代码:
import cv2 import matplotlib.pyplot as plt import numpy as np # 原图 img = cv2.imread('E:/img/4.jpg') cv2.imshow('img',img) cv2.waitKey(0) cv2.destroyAllWindows() # 均值滤波 # 简单的平均卷积操作 blur=cv2.blur(img,(3,3)) cv2.imshow('blur',blur) cv2.waitKey(0) cv2.destroyAllWindows() # 方框滤波 # 基本和均值一样,可以选择归一化 box=cv2.boxFilter(img,-1,(3,3),normalize=True) cv2.imshow('box',box) cv2.waitKey(0) cv2.destroyAllWindows() # 高斯滤波 # 高斯模糊的卷积 aussian=cv2.GaussianBlur(img,(5,5),1) cv2.imshow('aussian',aussian) cv2.waitKey(0) cv2.destroyAllWindows() # 中值滤波 # 利用中值替换 median = cv2.medianBlur(img,5) cv2.imshow('median',median) cv2.waitKey(0) cv2.destroyAllWindows()
2.效果
原图:
均值滤波:
方框滤波:
高斯滤波:
中值滤波:
各个比较,中值滤波去除噪音的效果较好。