Aide Python print rgb

jenjen -  
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je suis en première et je dois faire cet exercice en python. Mais je ne comprends pas pourquoi mon programme ne marche pas. Ci-dessous, la fonction
printRVB()
permet d'afficher le code
(r, v, b)
d'un pixel aux coordonnées
(x, y)
provenant de l'image
img
. Je dois compléter ce script et le tester avec l'image
rose.jpg
.

Mon script :

img = Image.open("rose.jpg")
img.show()
from PIL import Image
def printRVB(img, p):
    p = img.getpixel((320, 240))
    print(p)
printRVB(img, p)


Mercii



Configuration: Windows / Chrome 97.0.4692.99
A voir également:

2 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
peux-tu montrer la fonction comme elle était dans l'énoncé?
peux-tu utiliser les balises de code quand tu partages du code? https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Bonjour,

Il faut faire les
import
s avant d'appeler la(les) fonction(s) ou l'(les) objet(s) importé(s), sinon python rencontre des symboles dont il ne connaît pas la signification.

En l'occurrence, tu utilises l'objet
Image
alors que tu ne l'as pas encore importé. Ensuite, et suivant ce même principe, je t'invite à écrire ton script en déclarant d'abord toutes tes fonctions et en finissant par ton programme principal, dans son intégralité.

Enfin, en toute rigueur, on démarre un fichier python avec le shebang adéquat et l'encodage (ce qui permet d'utiliser des caractères accentués dans les commentaires)

Une fois remis en forme, ton programme devient :

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# Imports

from PIL import Image

# Fonctions

def printRVB(img, p):
    p = img.getpixel((320, 240))
    print(p)

# Programme principal

img = Image.open("rose.jpg")
img.show()
printRVB(img, p)
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
Je continue à me demander si la fonction printRVB() est bien définie...
0
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Effectivement il y a une confusion.
  • Du point de vue de la syntaxe, dans
    printRVB
    ,
    p
    semble désigner à la fois un paramètre et une variable locale
  • D'un point de vue sémantique, il y a visiblement un mélange entre :
    • les coordonnées du pixel
      (x, y)
      (qu'on pourrait appeler
      xy
      dans le code au lieu de
      p
      et qui vaut visiblement
      (320, 240)
      )
    • la couleur du pixel
      (r, v, b)
      (qu'on pourrait appeler
      rvb
      au lieu de
      p
      ).


Bref laissons jenjen nous montrer à quoi ressemble son programme une fois corrigé....
0