<p>Hola Horacio. La verdad que nunca se me dio por estudiar python, pero probaría dos cosas:<br>
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).<br>
Perdon por la brevedad, estoy enviando desde el cel</p>
<p>Saludos y suerte con eso</p>
<p><blockquote type="cite">El jul 26, 2010 3:31 p.m., "Horacio Castellini" <<a href="mailto:horacio9573@yahoo.com.ar">horacio9573@yahoo.com.ar</a>> escribió:<br><br>Este error aparece para cierto tipo de imagen y para otra no... no tengo la más pu* de que demonios pasa...<br>
<br>
si aplico esto a la imagen original en blanco y negro... (1024x1024)<br>
<br>
python grises.py 2Azoomx401.jpg<br>
<br>
funciona si dar error, en cambio si hago la operación..<br>
<br>
convert 2Azoomx401.jpg -resize 724x725 R2Azoomx401.jpg<br>
<br>
y vuelvo a aplicar esto<br>
<br>
python grises.py 2Azoomx401.jpg<br>
<br>
me da el error siguiente:<br>
<br>
Traceback (most recent call last):<br>
File "grises.py", line 22, in <module><br>
r,g,b=im.getpixel((i,j))<br>
TypeError: 'int' object is not iterable<br>
<br>
----------------------------------------------<br>
El código es el siguiente:<br>
#!/usr/bin/env python<br>
import Image<br>
import ImageFont<br>
import ImageDraw<br>
import sys<br>
import math<br>
Uso="Uso: %s archivo_dato" % sys.argv[0]<br>
if len(sys.argv) >2:<br>
print Uso<br>
sys.exit(1)<br>
try:<br>
im=Image.open(sys.argv[1])<br>
except:<br>
print "Error al abrir imagen" % sys.argv[1]<br>
sys.exit(1)<br>
x,y=im.size<br>
# Busca constante de normalizacion escala de grises<br>
Imax=0<br>
Imin=300<br>
for i in range(x):<br>
for j in range(y):<br>
r,g,b=im.getpixel((i,j)) #<---- acá está el problema..<br>
val=int(0.299*r+0.587*g+0.114*b)<br>
if Imax < val:<br>
Imax=val<br>
if Imin > val:<br>
Imin=val<br>
# print Imax, Imin<br>
# lleva a escala de grises normalizada<br>
for i in range(x):<br>
for j in range(y):<br>
r,g,b=im.getpixel((i,j))<br>
val=int(0.299*r+0.587*g+0.114*b)<br>
val=255*(val-Imin)/(Imax-Imin)<br>
print "%d" % int(val)<br>
--------------<br>
<br>
Alguna sugerencia... wellcome... saludos<br>
<br>
_______________________________________________<br>
Programacion mailing list<br>
<a href="mailto:Programacion@lugro.org.ar" target="_blank">Programacion@lugro.org.ar</a><br>
<a href="http://lugro.org.ar/mailman/listinfo/programacion" target="_blank">http://lugro.org.ar/mailman/listinfo/programacion</a><br>
</blockquote></p>