Сообщение об ошибке действительно сбивает с толку, но фактическая ошибка проста. Даже если вы используете только 1 канал, вам все равно нужно предоставить список размеров и диапазонов гистограммы. Вы сделали это для диапазона, но не для размера.
Это должно работать:
img = cv2.imread('test.jpg',0)
hist = cv2.calcHist([img],[0],None,[256],[0,256])
Ву-Ки предвидит вашу следующую проблему, так как необычно составлять гистограмму только из синего канала, и вы, вероятно, хотите вместо нее гистограмму интенсивности. В этом случае используйте промежуточный шаг преобразования, как предложил Wo-Ki.