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:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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')
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...