【发布时间】:2014-03-17 17:00:14
【问题描述】:
来自文档:
im.histogram() => 列表
返回图像的直方图。直方图以列表形式返回 像素计数,源图像中的每个像素值一个。如果 图像有多个波段,所有波段的直方图是 连接(例如,“RGB”图像的直方图包含 768 个值)。
我知道红色有 256 个值,绿色有 256 个值,蓝色有 256 个值 (256 * 3 = 768)。
for i, value in enumerate(im.histogram()):
print i, value
生产:
0 329
1 145
... (skipping some)
256 460
... (skipping some)
767 3953
我的问题是:这是否意味着有:
329 个像素,其值为 R = 0, G = 0, B = 0 和
145 个像素,其值为 R = 1, G = 0, B = 0 和
460 像素,其值为 R = 256, G = 1, B = 0 和
3953 个像素,其值为 R = 256, G = 256, B = 256 等。
我应该这样读取输出吗?
【问题讨论】:
-
鉴于文档中提到了关于订单的 Jack,我将生成 3 张独立的原色图片并查看直方图函数输出的内容。
-
谢谢,这听起来是个好主意。不过,看看订单的含义仍然很有趣。
-
我敢肯定,如果你想通过源代码工作,你可以建立实际的顺序,但有时最简单的方法是最好的。 BWT 当你弄明白后,把你的答案发回这里。
-
@PeterM:看起来数据是针对每个频道的,请参阅下面的 voithos 回答。