The Gaussian blur filter is also a linear filter but, unlike the simple mean filter, it takes the weighted average of the pixels inside the kernel window to smooth a pixel (the weight corresponding to a neighbor pixel decreases exponentially with the distance of the neighbor from the pixel). The following code shows how the PIL ImageFilter.GaussianBlur() can be used to smooth a noisier image with different radius parameter values for the kernel:
im = Image.open('../images/mandrill_spnoise_0.2.jpg')pylab.figure(figsize=(20,6))i = 1for radius in range(1, 4): im1 = im.filter(ImageFilter.GaussianBlur(radius)) pylab.subplot(1,3,i), plot_image(im1, 'radius = ' + str(round(radius,2))) i += 1pylab.suptitle('PIL ...