寻找在图像的垂直投影中绘制直方图的方法
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)
那应该显示出不同的高度,但是我没有得到那个结果,我做错了什么?
那就是我得到的
实际上,正确的直方图应显示具有不同高度的各种字符,但这似乎不适用于我的代码。
答案 0 :(得分:3)
plt.hist
已经计算出直方图。因为您要传递numpy.histogram
的结果,所以可以有效地绘制直方图y值的直方图。
替换
plt.hist(height_hist, bins=500, normed=True)
使用
plt.hist(y, bins=500, normed=True)