почему использование cv2.calcHist всегда имеет ошибку "возвратил NULL без установки ошибки" - PullRequest
0 голосов
/ 20 марта 2019

Я использую Opencv с python и сталкиваюсь с вопросом.
Когда я запускаю следующий код:

img = cv2.imread('test.jpg',0)
hist = cv2.calcHist([img],[0],None,256,[0,256])

Произошла ошибка: Системная ошибка: <встроенная функция calcHist> вернула NULL без установки ошибки
Я запутался и не могу найти ту же ошибку в сети, так что не так?
Спасибо.

PS: я запускаю один и тот же код как в Windows, так и в Ubuntu, и получаю одну и ту же ошибку, так что, возможно, причина не в системе?

Ответы [ 2 ]

0 голосов
/ 17 мая 2019

Сообщение об ошибке действительно сбивает с толку, но фактическая ошибка проста. Даже если вы используете только 1 канал, вам все равно нужно предоставить список размеров и диапазонов гистограммы. Вы сделали это для диапазона, но не для размера. Это должно работать:

img = cv2.imread('test.jpg',0)
hist = cv2.calcHist([img],[0],None,[256],[0,256])

Ву-Ки предвидит вашу следующую проблему, так как необычно составлять гистограмму только из синего канала, и вы, вероятно, хотите вместо нее гистограмму интенсивности. В этом случае используйте промежуточный шаг преобразования, как предложил Wo-Ki.

0 голосов
/ 06 мая 2019

этот вопрос можно решить так:

img = cv2.imread("picture.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
hist = cv2.calcHist([gray], [0], None, [256], [0, 256]) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...