0

我不知道该怎么说;当我创建直方图时,它的值应该从 0 到 255 [灰色阴影中的黑色到白色值],但它几乎总是在 300 左右。我的代码中是否存在与 x 范围有关的东西?

from PIL import Image
import matplotlib.pyplot as plt
import urllib, cStringIO

file = cStringIO.StringIO(urllib.urlopen("http://www.animal-photos.org/_photo/2715313.jpg").read())
im = Image.open(file)
im = im.convert("L")
data = list(im.getdata())
plt.hist(data, color = "gray", bins = 256, label = "Gray Histogram", )
plt.xlabel("Gray Value (0,256)")
plt.show()

添加了第一部分[文件部分],以便代码实际运行;URL 只是我打开的黑白 jpg。程序分割图像并通过直方图告诉我们有多少像素具有不同的灰度(由值 0 到 255 给出)。

4

1 回答 1

1

刻度的默认自动定位器尝试制作“不错”的范围(如最接近的一百)。

您只需要设置 x-limits

plt.gca().set_xlim([0, 255])

解决您的问题。

于 2013-06-22T00:12:11.993 回答