我正在尝试编写一个python小程序来获取图像的灰度直方图。我正在使用OpenCV和matplotlib但是在尝试显示图形时我没有得到好的结果。
这就是我正在做的事情:
hist
函数。但是我没有得到预期的结果。这就是我正在尝试的:
img = cv2.imread(sys.argv[1], 0)
# cv2.imshow("Imagen",img)
height, width = img.shape
print height
print width
hist = [0] * 256
print hist
for y in xrange(height):
for x in xrange(width):
pixel = img[y,x]
hist[pixel] = hist[pixel] + 1
print hist
print max(hist)
pyplot.hist(hist,256, range=(0,255))
pyplot.show()
我刚刚打印了最小值和最大值,最大值为4001,这就是我所获得的。
我如何获得合适的情节?
注意:我知道OpenCV有这个和其他实现,但在这种情况下我必须自己编写代码。答案 0 :(得分:1)
您不想pyplot.hist(hist,256, range=(0,255))
,因为这是为您汇总数据,但您已经自己汇总了数据。
试试这个
pyplot.plot(hist)