web-dev-qa-db-fra.com

brouiller une image en utilisant PIL dans python

J'ai essayé de brouiller une image en utilisant le PIL.

d'après ce que je sais, j'ai besoin de copier l'image, puis de changer chaque pixel en moyenne des pixels qui l'entourent, à partir de l'image d'origine. donc je ne suis pas allé très loin, j'utilise python 3.3x

from PIL import Image 

img = Image.open("source")
im = Image.copy(img)

Je sais comment utiliser putpixe et obtenir les données d'un pixel, mais je ne sais pas comment obtenir la moyenne des pixels.

Merci d'avance pour l'aide!

17
Mumfordwiz

Vous pouvez simplement faire:

blurred_image = original_image.filter(ImageFilter.BLUR)

Voir le module ImageFilter pour plus d'options.

Vous avez raison en ce que le processus que vous décrivez rendrait l'image floue, et il existe des filtres qui font essentiellement directement ce que vous suggérez (* par exemple ", en utilisant le ImageFilter.Kernel méthode où votre noyau a des poids constants). L'utilisation de ImageFilter sera cependant plus rapide et plus facile, et vous donnera plus d'options pour le flou et au-delà.

25
tom10