文章目录
一、中值滤波
中值滤波使用了局部邻域(窗口)里的中值来代替上述局部平均法中的局部平均值。即将以该点为中心的某个窗口框住的各像素的中间值作为处理后图象中该点像素的值。能有效处理椒盐噪声。
二、代码实现
下图代码实现了中值滤波对图像处理,其中k为滤波核大小。
def Median_filter(img, k):
h, w, c = img.shape
pad = k // 2 # 舍弃小数
out = np.zeros((h + 2 * pad, w + 2 * pad, c))
out[pad:pad + h, pad:pad + w] = img.copy()
tmp = out.copy()
for y in range(h):
for x in range(w):
for ci in range(c):
out[pad + y, pad + x, ci] = np.median(tmp[y:y + k, x:x + k, ci])
out = out[pad:pad + h, pad:pad + w]
return out
img = cv2.imread("filename")
out = gaussian_filter(img, 5, 3.5)
cv2.imwrite("out_filename", out)