TypeError: integer argument attendu, a obtenu le flotteur lors de la conversion d'une image en niveaux de gris
J'utilise le code suivant pour convertir une image couleur à une image en niveaux de gris. Pourquoi faut-il jeter un TypeError
?
#!/usr/bin/python
from PIL import Image
im = Image.open("Penguins.jpg")
pixel = im.load()
width, height = im.size
for x in range(width):
for y in range(height):
R,G,B = pixel[x,y]
pixel[x,y] = ((0.299*R+0.587*G+0.114*B),(0.299*R+0.587*G+0.114*B),(0.299*R+0.587*G+0.114*B))
im.save("Penguins_new.jpg")
- Avez-vous songé que vous êtes de passage d'un flotteur et d'un entier?
- Je sais, mais comment dois-je faire pour corriger?
- Jetez un oeil à ma réponse. Il faut espérer résoudre votre solution.
Vous devez vous connecter pour publier un commentaire.
L'argument que vous êtes de passage à
pixel[x, y]
doit être unint
, pas unfloat
. Essayez de casting comme un entier.int
avecfloat
.__init__()
et d'autres pages dans la bibliothèque standard de documentation reportez-vous à les constructeurs. Vous pouvez certainement dire que Python a jette ou qu'il n'a pas de constructeurs, mais vous serez en fait incorrect.