椒盐噪声的特征非常明显,为图像上有黑色和白色的点。使用中值滤波可以很好的去除椒盐噪声。
设定中值滤波的尺寸为3*3. 即用滤波覆盖的9个格子的中间值代替该点的灰度值。
# -*- coding: utf-8 -*-
"""
Created on Wed Mar 29 15:32:46 2017
@author: Joker
"""
from skimage import io
im=io.imread('b.jpg')
#io.imshow(im)
for i in range(0,im.shape[0]):
for j in range(0,im.shape[1]):
im_copy[i][j]=im[i][j]
#用3*3的中值滤波器
step=3
def m_filter(x,y):
sum_s=[]
for k in range(-int(step/2),int(step/2)+1):
for m in range(-int(step/2),int(step/2)+1):
sum_s.append(im[x+k][y+m])
sum_s.sort()
return sum_s[(int(step*step/2)+1)]
for i in range(int(step/2),im.shape[0]-int(step/2)):
for j in range(int(step/2),im.shape[1]-int(step/2)):
im_copy[i][j]=m_filter(i,j)
io.imshow(im_copy)

本文探讨了使用Python进行图像处理时,如何通过中值滤波有效地去除椒盐噪声。3*3滤波器效果有限,而5*5滤波器虽能较好地去除噪声,但会导致边界问题。为解决边界未处理区域扩大,提出了剔除边界两像素并扩大原图尺寸的方法。

1万+

被折叠的 条评论
为什么被折叠?



