Histograma de cores de imagens de plotagem usando matplotlib
Eu estou tentando gerar um histograma de cores de uma imagem. Eu estou usando PIL para ler arquivos de imagem e tentando traçar o mesmo através de matplotlib.
im = Image.open(sys.argv[1])
w, h = im.size
colors = im.getcolors(w*h) #Returns a list [(pixel_count, (R, G, B))]
Atualizar: Depois de algumas tentativas e erros, este código traça o histograma, mas não as cores! (Leva laboriosamente longo consome toneladas de memória, mesmo para um 320 x 480 jpeg)
for idx, c in enumerate(colors):
plt.bar(idx, c[0], color=hexencode(c[1]))
plt.show()
Onde,
def hexencode(rgb):
return '#%02x%02x%02x' % rgb
Na execução, o programa começa a consumir memória infinita e nenhuma exibição é fornecida. O uso de memória do SO passou de <380 MB para> 2,5 GB em questão de alguns minutos; post que eu terminei a execução. Como posso resolver o problema?
Aqui está um exemplo de um histograma de cores da imagem com tons vermelhos dominantes: