[Programación]TypeError: 'int' object is not iterable

D1e6o! diegogeid en gmail.com
Lun Jul 26 15:47:24 ART 2010


Hola Horacio. La verdad que nunca se me dio por estudiar python, pero
probaría dos cosas:
Por un lado, que pasa si haces lo mismo con una imagen final cuadrada? Es
decir, de 724x724, y por otro, verificar la profundidad de colores de la
imagen resultante y si es igual que de la que parte (por el error de tipo de
datos).
Perdon por la brevedad, estoy enviando desde el cel

Saludos y suerte con eso

El jul 26, 2010 3:31 p.m., "Horacio Castellini" <horacio9573 en yahoo.com.ar>
escribió:

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

_______________________________________________
Programacion mailing list
Programacion en lugro.org.ar
http://lugro.org.ar/mailman/listinfo/programacion
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lugro.org.ar/pipermail/programacion/attachments/20100726/5554e101/attachment.html>


Más información sobre la lista de distribución Programacion