Bonsoir,
J'ai une fonction qui crée un seuillage sur une image en niveaux de gris, pas de souci.
Par contre, je n'arrive pas à appliquer ce seuillage sur une image RGB.

Voici mon code :

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
38
39
40
41
42
43
44
45
46
47
48
49
 
from numpy import *
from PIL import Image
 
####################
def seuil(x):
    if x<122:
        return 50
    else:
        return 220
####################    
# seuillage d'une image en niveaux de gris 
image1 = Image.open('lena.png').convert('L')
impix = image1.load()
for i in range(image1.size[0]):
    for j in range(image1.size[1]):
        impix[i,j] = seuil(impix[i,j]) 
 
image1.save('lenaseuil.eps')
image1.show()
 
####################    
# seuillage d'une image en couleurs 
image2 = Image.open('lena.png')
composition = image2.split()
 
impix0 = composition[0].load()
for i in range(image2.size[0]):
    for j in range(image2.size[1]):
        impix0[i,j] = seuil(impix0[i,j]) 
 
impix1 = composition[1].load()
for i in range(image2.size[0]):
    for j in range(image2.size[1]):
        impix1[i,j] = seuil(impix1[i,j])
 
impix2 = composition[2].load()
for i in range(image2.size[0]):
    for j in range(image2.size[1]):
        impix2[i,j] = seuil(impix2[i,j])
 
## décomposition de l'image
ma_composition=impix0,impix1,impix2
 ## Recomposition de l'image
mon_image_recomposee = Image.merge('RGB',ma_composition)
## Sauvegarde de l'image décomposée puis recomposée
mon_image_recomposee.save("lenaseuilRGB.eps")
## Visualisation de l'image recomposée
Image.open('lenaseuilRGB.eps').show()
Je pense que mon souci se situe à la ligne 43, mais je ne suis pas sûr.
Si quelqu'un peut m'aider, je le suis en serai reconnaissant car il y a un point qui m'échappe (je confonds image et liste ?).
Dans un deuxième temps, je souhaiterais effectuer une boucle sur impix.

A bientôt, j'espère.