如何使用Python Pillow定义模糊半径?

11

我正在尝试使用PillowImageFilter对图片进行模糊处理,方法如下:

from PIL import ImageFilter
blurred_image = im.filter(ImageFilter.BLUR)

这个方法的效果还不错,但它有一个固定的半径,对我而言太小了。我希望能将图像模糊到几乎无法识别的程度。在文档中我看到默认情况下半径设置为2,但我不知道如何将其设置为更大的值?

请问有人知道如何使用Pillow增加模糊半径吗?欢迎提供所有提示!


高斯模糊的一个有趣特性是,当你多次运行它时,结果会是一个更宽的高斯模糊。试着做两次。 - Mark Ransom
1个回答

15

Image.filter()接受一个ImageFilter对象,因此您可以使用任何半径作为命名参数来创建一个ImageFilter.GaussianBlur实例。

blurred_image = im.filter(ImageFilter.GaussianBlur(radius=50))
您甚至可以将其变得更加简洁,就像这样:
blurred_image = im.filter(ImageFilter.GaussianBlur(50))

5
我目前正在使用的版本(Image 1.1.7,Ubuntu 12.04)存在一个 bug。参数被忽略了。解决方法是:filter = ImageFilter.GaussianBlur(); filter.radius=50blurred_image = im.filter(filter)。如果你遇到了和我一样的问题,这里提供给你解决方案,省去了搜索的麻烦。 - Alfe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接