Вы, вероятно, читаете недопустимое изображение с нулевым разрешением. Проверьте путь к изображению, поскольку размер исходного изображения, скорее всего, пуст и не был правильно прочитан. Вы можете проверить форму изображения, чтобы убедиться, что оно имеет действительный размер (height, width, channels)
, подобный этому
image = cv2.imread('noexist.png')
print(image.shape)
Если вы получаете ошибку AttributeError
, подобную этой, это означает, что путь к вашему изображению неверен / поврежден.
Traceback (most recent call last):
File ".\test.py", line 4, in <module>
print(image.shape)
AttributeError: 'NoneType' object has no attribute 'shape'
OpenCV не сгенерирует исключение, пока вы не попытаетесь что-то сделать с этим NoneType
объектом. Поэтому в следующей строке при попытке изменить размер изображения выдается ошибка. Ваша ситуация воспроизводима с помощью этого простого примера
import cv2
image = cv2.imread('noexist.jpg')
resize = cv2.resize(image, (64,64))
cv2.waitKey()
Обратите внимание, что если вы удалите cv2.resize()
, исключение не будет выдано. Чтобы решить вашу проблему, вы можете использовать cv2.error
и блок try/except
, чтобы перехватить исключение
import cv2
image = cv2.imread('noexist.jpg')
try:
resize = cv2.resize(image, (64,64))
except cv2.error as e:
print('Invalid frame!')
cv2.waitKey()
Неверный кадр!