绘制图像垂直投影的直方图

时间:2018-12-20 18:27:26

标签: python histogram

寻找在图像的垂直投影中绘制直方图的方法

def verticalProjection(img):
   "Return a list containing the sum of the pixels in each column"
   (h, w) = img.shape[:2]
   sumCols = []
   for j in range(w):
       col = img[0:h, j:j+1] # y1:y2, x1:x2
       sumCols.append(np.sum(col))
   return sumCols
def slice_digits(image_name):
    img = cv2.imread(image_name, 0)
    img = cv2.bitwise_not(img)
    y = verticalProjection(img)
    height_hist = np.histogram(y, bins=500)
    plt.hist(height_hist, bins=500, normed=True)

    plt.show()
    plt.plot(y)

我期望显示图像高度的直方图。 图像示例在这里: enter image description here

那应该显示出不同的高度,但是我没有得到那个结果,我做错了什么?

那就是我得到的

enter image description here

实际上,正确的直方图应显示具有不同高度的各种字符,但这似乎不适用于我的代码。

1 个答案:

答案 0 :(得分:3)

plt.hist已经计算出直方图。因为您要传递numpy.histogram的结果,所以可以有效地绘制直方图y值的直方图。

替换

plt.hist(height_hist, bins=500, normed=True)

使用

plt.hist(y, bins=500, normed=True)