python画不同颜色的直方图,使用matplotlib绘制图像颜色直方图

I am trying to generate a color histogram of an image. I am using PIL for reading image files and trying to plot the same through matplotlib.

im = Image.open(sys.argv[1])

w, h = im.size

colors = im.getcolors(w*h) #Returns a list [(pixel_count, (R, G, B))]

Update: After some trial and error this code plots the histogram, but not the colors! (Takes laboriously long consumes ton loads of memory even for a 320x480 jpeg)

for idx, c in enumerate(colors):

plt.bar(idx, c[0], color=hexencode(c[1]))

plt.show()

Where,

def hexencode(rgb):

return '#%02x%02x%02x' % rgb

On execution, the program begins to consume infinite memory and no display is provided. OS memory usage went from < 380 MB to > 2.5 GB in matter of couple of minutes; post which I terminated the execution. How can I get solve the problem?

Here is an example of a color histogram of image with dominant Red shades:

6LFYf.jpg

解决方案

I tired your update code and it worked fine. Here is exactly what I am trying:

import PIL

from PIL import Image

from matplotl

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值