Convertion image en niveau gris

Signaler
Messages postés
2
Date d'inscription
dimanche 3 janvier 2021
Statut
Membre
Dernière intervention
4 janvier 2021
-
Messages postés
30500
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
4 janvier 2021
-
Salut,
Pourriez vous m'aidez pour corriger le programme afin de pouvoir convertir l’image en niveaux de gris.
Voici ce que j'ai déjà fait :
import PIL
from PIL import Image

fichier_image ="D/m/photo.jpg" #à modifier !

#On essaie d'ouvrir le fichier image
try:
   image_couleur = Image.open(fichier_image)
except IOError:
    print ('Erreur sur ouverture du fichier ' + fichier_image)

# récupération de la largeur et hauteur de l'image
image_couleur=fichier_image
nb_colonne,nb_ligne = image_couleur

# création d'une image de même type
image_niveaux_gris = Image.new(image_couleur.mode,image_couleur.size)

#boucle de traitement des pixels
for ligne in range(nb_ligne):
    for colonne in range(nb_colonne):
        rouge,vert,bleu = image_couleur.getpixel((colonne,ligne)) # récupération du pixel
        # [https://www.commentcamarche.net/download/telecharger-34056674-calcul calcul] du poids de chaque composante du gris dans le pixel
        gris = int(0.299*rouge + 0.114*vert + 0.144*bleu) # a modifier
        # en gris les 3 composantes RGB sont identiques
        pixel_niveau_gris = (7,7,7) #a modifier
        # composition de la nouvelle image
        image_niveaux_gris.putpixel((colonne,ligne), pixel_niveau_gris)

# affichage de l'image
image_niveaux_gris.show()

# sauvegarde du nouveau fichier image niveaux de gris
image_niveaux_gris.save("D/m/photo.jpg") #à modifier

# fermeture du fichier image
image_niveaux_gris.close()

Merci d'avance

2 réponses

Messages postés
831
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
5 janvier 2021
94
Bonjour,

L'indentation étant importante en Python, merci de poster ton code complet avec les balises de code
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :

def test():
    print('test')

test()
Messages postés
30500
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
4 janvier 2021
7 185
Bonjour,

J'ai inséré les balises sur ta question comme indiqué par Phil_1857, mais pense bien à le faire la prochaine fois.

Le code, tu l'as écrit ou recopié ? Car dans ce dernier cas il est surtout important que tu le décortiques pour comprendre ce qu'il fait.

Il n'est pas loin de fonctionner.

Moi je vois des modifications/corrections à apporter en lignes 13, 14, 26 et 34