python3-Scipy-ndimage进行盒核与高斯核平滑比较

发布时间:2021-09-26 23:14:05编辑:run阅读(5734)

    使用scipy的ndimage模块函数对图像进行线性滤波,

    应用线性滤波器对带有脉冲(椒盐)噪声的图像进行去噪处理。

    from skimage.io import imread
    import matplotlib.pylab as pylab
    from scipy import signal, misc, ndimage
    
    pylab.rcParams['font.sans-serif'] = ['KaiTi']
    pylab.rcParams['axes.unicode_minus'] = False
    def plot_image(image, title=''):
        pylab.title(title, size=20)
        pylab.imshow(image)
        pylab.axis('off')
    im = imread(r'D:\image_processing\image4\f.jpg')
    k = 7
    im_box = ndimage.uniform_filter(im, size=(k, k, 1))
    s = 2
    t = (((k - 1) / 2) - 0.5) / s
    im_gaussian = ndimage.gaussian_filter(im, sigma=(s, s, 0), truncate=t)
    fig = pylab.figure(figsize=(30, 20))
    pylab.subplot(131)
    plot_image(im, '原始图像')
    pylab.subplot(132)
    plot_image(im_box, '带有盒式滤波器的模糊化')
    pylab.subplot(133)
    plot_image(im_gaussian, '带有高斯滤波器的模糊化')
    pylab.show()

    image.png

    可以看到,盒式滤波器采用相同尺寸a=2的核比高斯滤波器采用同样尺寸的核进行平滑,其输出图像更加模糊。

关键字