我不熟悉OpenCV和Python。我想执行高斯滤波和中值滤波,首先给图像添加噪声。我有成功的输出高斯滤波器,但我不能得到中值过滤器。可以任何人请解释如何用Python在OpenCV中对噪声图像执行中值滤波。以下是我的代码:import numpy as np
import cv2
img = cv2.imread('lizard.jpg').astype(np.float32)
gaussian_blur = np.array([[1,2,1],[2,4,2],[1,2,1]],dtype=np.float32)
gaussian_blur = gaussian_blur/np.sum(gaussian_blur)
img_noise = img + np.random.uniform(-20,20,size=np.shape(img))
cv2.imwrite('gt3_plus_noise.jpg',img_noise)
median = cv2.medianBlur(img_noise.astype(np.float32),(3),0)
cv2.imshow('Median Blur',median)
cv2.waitKey()
cv2.destroyAllWindows()
img_blur_g = cv2.filter2D(img_noise.astype(np.float32), -1,gaussian_blur)
cv2.imwrite('gt3_noise_filtered_gaussian.jpg',img_blur_g)
输出:
噪声滤波高斯
噪声图像
中值滤波图像