import cv2 from PIL import Image import numpy as np import os import cv2 import numpy as np defmedian_filter(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() for y in range(H): for x in range(W): for c in range(C): out[pad+y, pad+x, c] = np.median(tmp[y:y+K_size, x:x+K_size, c]) out = out[pad:pad+H, pad:pad+W].astype(np.uint8) return out #被噪声污染图片文件夹 dirs_path="./" count = 0 dirs = os.listdir(dirs_path) threads = [] for k in dirs: if k.endswith('JPG'): count += 1 print("processing on pic" + str(count)) img = cv2.imread(k) out1 = median_filter(img, K_size=3) cv2.imwrite("./output/"+coun+".jpg", out1) cv2.waitKey(0) cv2.destroyAllWindows()