Bonjour à tous,
je souhaiterais postériser une image à partir d'un seuil de gris par la méthode PIL ; je réussis à recréer une image en valeurs de gris mais je n'arrive pas à postériser ensuite selon la valeur de gris trouvé.
Merci de m'aider si possible.
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
30
31
32
33
34
35
36
37
 
import numpy as np
from PIL import Image
from os import chdir,getcwd
 
# Définition du répertoire de travail
repertoire="C:..." # Chemin du REPERTOIRE
chdir(repertoire) #La méthode chdir() modifie le REPERTOIRE de travail en cours.
 
IM=Image.open("image_couleur.png")   #lecture de l'image en couleur
matrice_image=np.array(IM)
 
n=matrice_image.shape[0]       #accés au premier composant : n est le nb de lignes (393)
m=matrice_image.shape[1]       #accés au second composant : m est le nb de colonnes (700)
IMN=np.zeros((n,m),dtype='uint8') #création d'une matrice de n lignes et de m colonnes de valeurs 0
 
def Noir(image):
#création pour chaque pixel d'une valeur de gris
    for i in range(n):
        for j in range(m):  #pour chaque pixel de chaque ligne de chaque colonne
            IMN[i,j]=0.299*image[i,j][0]+0.587*image[i,j][1]+0.114*image[i,j][2]
    return IMN      
 
def f_seuil (image, seuil) :
    if image[i,j] < seuil :
        return 50
    else :
        return 200
    return
 
image_posterisee=np.zeros((n,m),dtype='uint8')
for i in range (n) :
    for j in range (m) :
        image_posterisee[i,j] = f_seuil(Noir(matrice_image),128)
 
image_noire = Image.fromarray(image_posterisee)
image_noire.show()