É possível obter a cor RGB de um pixel usando PIL? Estou usando este código:
im = Image.open("image.gif")
pix = im.load()
print(pix[1,1])
No entanto, ele exibe apenas um número (por exemplo, 0
ou 1
) e não três números (por exemplo, 60,60,60
para R, G, B). Acho que não estou entendendo algo sobre a função. Eu adoraria alguma explicação.
Muito obrigado.
Os GIFs armazenam cores como um de x número de cores possíveis em uma paleta. Leia sobre a paleta de cores limitada de gif . Portanto, PIL está fornecendo o índice da paleta, em vez das informações de cor dessa cor da paleta.
Editar: link removido para uma solução de postagem de blog que apresentava um erro de digitação. Outras respostas fazem a mesma coisa sem erro de digitação.
fonte
Uma alternativa para converter a imagem é criar um índice RGB a partir da paleta.
fonte
Não é PIL, mas
imageio.imread
ainda pode ser interessante:dá
assim é (altura, largura, canais). Então, o pixel na posição
(x, y)
éDesatualizado
scipy.misc.imread
está obsoleto no SciPy 1.0.0 (obrigado pelo lembrete, fbahr !)fonte
scipy.misc.imread
está obsoleto!imread
está obsoleto no SciPy 1.0.0 e será removido na 1.2.0. Use em seuimageio.imread
lugar.