Как определить радиус размытия с помощью Python Pillow?

Я пытаюсь размыть изображение с помощью подушки, используя ImageFilter следующим образом:

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

Это работает нормально, за исключением того, что у него установлен радиус, который для меня слишком мал. Я хочу так сильно размыть изображение, чтобы его больше нельзя было распознать. В документации я вижу, что установлен на радиус 2 по умолчанию, но я не очень понимаю, как установить большее значение?

Кто-нибудь знает, как я могу увеличить радиус размытия с помощью подушки? Все советы приветствуются!


person kramer65    schedule 05.05.2016    source источник
comment
Одним из интересных свойств размытия по Гауссу является то, что при его многократном запуске получается более широкое размытие по Гауссу. Попробуйте сделать это дважды.   -  person Mark Ransom    schedule 05.05.2016


Ответы (1)


Image.filter() принимает ImageFilter, поэтому вы можете создать ImageFilter.GaussianBlur экземпляр с любым радиусом, который вам нужен, переданный как именованный аргумент.

blurred_image = im.filter(ImageFilter.GaussianBlur(radius=50))

Вы даже можете сделать его более лаконичным:

blurred_image = im.filter(ImageFilter.GaussianBlur(50))
person Dmiters    schedule 05.05.2016
comment
Версия, которую я все еще использую (Image 1.1.7, Ubuntu 12.04), содержит ошибку. Параметр игнорируется. Решение: filter = ImageFilter.GaussianBlur(); filter.radius=50, blurred_image = im.filter(filter). Просто чтобы сэкономить на поиске на случай, если у вас та же проблема, что и у меня. - person Alfe; 01.02.2017