python3-PIL高斯模糊滤波器平滑

发布时间:2021-09-25 23:14:11编辑:run阅读(6609)

    高斯模糊滤波器也是一种线性滤波器,但与简单的均值滤波器不同的是它采用核窗口内像素的加权平均值来平滑一个像素(相邻像素的权重随着相邻像素与像素距离呈指数递减),PIL的ImageFilter.GaussianBlur()函数用不同半径参数值的核实现对较大噪声图像平滑。

    from PIL import Image, ImageEnhance, ImageFilter
    import matplotlib.pylab as pylab
    
    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 = Image.open(r'D:\image_processing\image4\f.jpg')
    pylab.figure(figsize=(20, 15))
    i = 1
    for radius in range(1, 4):
        im1 = im.filter(ImageFilter.GaussianBlur(radius))
        pylab.subplot(1,3,i)
        plot_image(im1, '半径为' + str(round(radius, 2)))
        i += 1
    pylab.suptitle('不同半径的PIL高斯模糊', size=30)
    pylab.show()

    image.png

    可以看到,随着半径增大,高斯滤波器去除的噪声越来越多,图像变得更加平滑,也变得更加模糊。

关键字