¿Es posible obtener el color RGB de un píxel usando PIL? Estoy usando este código:
im = Image.open("image.gif")
pix = im.load()
print(pix[1,1])
Sin embargo, solo genera un número (por ejemplo, 0
o 1
) y no tres números (por ejemplo, 60,60,60
para R, G, B). Supongo que no entiendo algo sobre la función. Me encantaría alguna explicación.
Muchas gracias.
Los GIF almacenan colores como uno de los x posibles colores en una paleta. Lea acerca de la paleta de colores limitada de gif . Entonces, PIL le brinda el índice de la paleta, en lugar de la información de color de esa paleta.
Editar: se eliminó el enlace a una solución de publicación de blog que tenía un error tipográfico. Otras respuestas hacen lo mismo sin el error tipográfico.
fuente
Una alternativa a la conversión de la imagen es crear un índice RGB a partir de la paleta.
fuente
No es PIL, pero
imageio.imread
podría ser interesante:da
así es (alto, ancho, canales). Entonces el píxel en la posición
(x, y)
esAnticuado
scipy.misc.imread
está obsoleto en SciPy 1.0.0 (¡gracias por el recordatorio, fbahr !)fuente
scipy.misc.imread
está obsoleto!imread
está obsoleto en SciPy 1.0.0 y se eliminará en 1.2.0. Úselo en suimageio.imread
lugar.Con numpy:
Dar vector RGB del píxel en posición (0,0)
fuente