Чтобы построить гистограмму изображения, используйте pyplot.hist :
Если изображение находится в оттенках серого, где интенсивность оттенков серого варьируется от 0 до 255, используйте:
from matplotlib import pyplot as plt
plt.hist(img.ravel(), 256, [0,256])
Если это цветное изображение, вы также можете использовать функцию opencv calcHist :
color = ('b', 'g', 'r')
for i,col in enumerate(color):
histr = cv2.calcHist([img],[i],None,[256],[0,256])
plt.plot(histr,color = col)
plt.xlim([0,256])
Интенсивность изображения каждого канала должна быть в пределах [0, 255]