Bonjour, je suis débutant en python et je cherche en vain depuis plusieurs heures à pixeliser une image avec la libraire PIL..
Je m'explique, imaginons que j'ai une image en niveau de gris de 300x300, j'aimerai la pixeliser avec des pixels de taille 10x10.
J'ai très bien compris le principe:
- On traite un premier bloc de 10x10 pixels de la première image, on prend la moyenne des valeurs de ces pixels
- On donne cette nouvelle valeur (la moyenne) aux 10x10 pixels de l’image initiale
- On passe ensuite au second bloc, et on opère de même etc... Jusqu’à avoir fini tout les blocs
Mais je n'arrive pas à l'interpreter en python..
J'espère avoir été assez clair.. Si quelqu'un pouvait m'aider, je lui en serai très reconnaissant.
Merci d'avance!
Voila le "début" du programme:
J'ai essayé de créer une fonction moyenne, je ne sais pas si elle marche et je ne sais pas non plus comment l'implanter...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 def moyenne(pix): numberOfData = len(larg)*len(haut) moyenne = 0 for i in range(len(pix)): for data in pix[i]: moyenne += data/numberOfData return moyenne #-------------------------------------- from PIL import Image import webbrowser im=Image.open('turing_gris.jpg') im2=Image.new('F',(300,300)) pix=im.load() pix2=im2.load() larg, haut=im.size for i in range(larg//10): for j in range(haut//10): for k in range(10): for l in range(10): p=im.getpixel((j*10+l , i*10+k)) im2=im.putpixel((i,j),p) im2.save('turing_gris2.jpg') webbrowser.open('turing_gris2.jpg')