2016-05-05 14 views
5

Ich versuche, ein Bild mit Pillow zu verwischen, the ImageFilter wie folgt verwendet:Wie definiert man Radius für Unschärfe mit Python Pillow?

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

Das funktioniert gut, außer dass es eine Reihe Radius hat, die für mich viel zu klein ist. Ich möchte das Bild so sehr verwischen, dass es kaum noch zu erkennen ist. In den Dokumenten sehe ich, dass the radius is set to 2 by default, aber ich verstehe nicht wirklich, wie ich es auf einen größeren Wert setzen kann?

Hat jemand eine Idee, wie ich den Unschärfe Radius mit Kissen erhöhen könnte? Alle Tipps sind willkommen!

+0

Eine der interessanten Eigenschaften einer Gaußschen Unschärfe ist, dass, wenn Sie es mehrmals ausgeführt, ist das Ergebnis eine breitere Unschärfe Gaußsche ist. Versuche es zweimal. –

Antwort

4

Image.filter() dauert ImageFilter, so dass Sie eine ImageFilter.GaussianBlur Instanz mit dem von Ihnen gewünschten Radius erstellen können, der als benanntes Argument übergeben wird.

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

können Sie sogar machen es prägnant wie so:

blurred_image = im.filter(ImageFilter.GaussianBlur(50)) 
+1

Die Version, die ich noch benutze (Image 1.1.7, Ubuntu 12.04) hat einen Bug. Parameter wird ignoriert. Umgehung: 'filter = ImageFilter.GaussianBlur(); filter.radius = 50', 'blured_image = im.filter (filter)'. Nur um dir die Suche zu ersparen, falls du das gleiche Problem hast wie ich. – Alfe