发布时间:2021-09-25 23:14:11编辑:run阅读(8807)
高斯模糊滤波器也是一种线性滤波器,但与简单的均值滤波器不同的是它采用核窗口内像素的加权平均值来平滑一个像素(相邻像素的权重随着相邻像素与像素距离呈指数递减),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()
可以看到,随着半径增大,高斯滤波器去除的噪声越来越多,图像变得更加平滑,也变得更加模糊。
51261
50700
41299
38119
32578
29485
28342
23203
23173
21500
1574°
2292°
1901°
1843°
2152°
1884°
2573°
4312°
4161°
2969°