[Programación] TypeError: 'int' object is not iterable
Horacio Castellini
horacio9573 en yahoo.com.ar
Lun Jul 26 15:30:49 ART 2010
Este error aparece para cierto tipo de imagen y para otra no... no tengo
la más pu* de que demonios pasa...
si aplico esto a la imagen original en blanco y negro... (1024x1024)
python grises.py 2Azoomx401.jpg
funciona si dar error, en cambio si hago la operación..
convert 2Azoomx401.jpg -resize 724x725 R2Azoomx401.jpg
y vuelvo a aplicar esto
python grises.py 2Azoomx401.jpg
me da el error siguiente:
Traceback (most recent call last):
File "grises.py", line 22, in <module>
r,g,b=im.getpixel((i,j))
TypeError: 'int' object is not iterable
----------------------------------------------
El código es el siguiente:
#!/usr/bin/env python
import Image
import ImageFont
import ImageDraw
import sys
import math
Uso="Uso: %s archivo_dato" % sys.argv[0]
if len(sys.argv) >2:
print Uso
sys.exit(1)
try:
im=Image.open(sys.argv[1])
except:
print "Error al abrir imagen" % sys.argv[1]
sys.exit(1)
x,y=im.size
# Busca constante de normalizacion escala de grises
Imax=0
Imin=300
for i in range(x):
for j in range(y):
r,g,b=im.getpixel((i,j)) #<---- acá está el problema..
val=int(0.299*r+0.587*g+0.114*b)
if Imax < val:
Imax=val
if Imin > val:
Imin=val
# print Imax, Imin
# lleva a escala de grises normalizada
for i in range(x):
for j in range(y):
r,g,b=im.getpixel((i,j))
val=int(0.299*r+0.587*g+0.114*b)
val=255*(val-Imin)/(Imax-Imin)
print "%d" % int(val)
--------------
Alguna sugerencia... wellcome... saludos
Más información sobre la lista de distribución Programacion