我不确定如何说出来;当我创建直方图时,它应该具有0到255之间的值[灰色阴影中的黑色到白色值],但它几乎总是达到300左右。我的代码中是否有一些东西正在弄乱x范围?< / p>
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的值给出)。
答案 0 :(得分:1)
刻度线的默认自动定位器会尝试制作“漂亮”范围(如最接近的百位)。
您只需要设置x限制
plt.gca().set_xlim([0, 255])
解决问题。