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

Horacio Castellini horacio9573 en yahoo.com.ar
Lun Jul 26 15:52:54 ART 2010



--- El lun 26-jul-10, D1e6o! <diegogeid en gmail.com> escribió:

De: D1e6o! <diegogeid en gmail.com>
Asunto: Re: [Programación]TypeError: 'int' object is not iterable
Para: programacion en lugro.org.ar
Fecha: lunes, 26 de julio de 2010, 15:47

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, 

Pasa lo mismo... no depende de la geometría

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).
Es en blanco y negro... 



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



-----Adjunto en línea a continuación-----

_______________________________________________
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/aac2280f/attachment-0001.htm>


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