Aide Python print rgb

Fermé
jenjen - Modifié le 1 févr. 2022 à 17:14
mamiemando Messages postés 33653 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 3 mai 2025 - 1 févr. 2022 à 19:13
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 23535 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2025 Ambassadeur 1 579
1 févr. 2022 à 08:53
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 33653 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 3 mai 2025 7 846
1 févr. 2022 à 17:18
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 23535 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2025 1 579
1 févr. 2022 à 18:34
Je continue à me demander si la fonction printRVB() est bien définie...
0
mamiemando Messages postés 33653 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 3 mai 2025 7 846 > yg_be Messages postés 23535 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2025
1 févr. 2022 à 19:13
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