Следующий код выводит эту ошибку на терминал, но не останавливает выполнение: libpng error: IEND: CRC error
import numpy as np
import cv2
import os
# image is stored in the same location as the python file
dir_path = os.path.dirname(os.path.realpath(__file__))
path = dir_path+'/test.png'
# img always gets set as a NoneType
img = cv2.imread(path)
Вот тестовое изображение, о котором идет речь (да, оно пустое):
Некоторые Google-Fu показали, что в пакете Anaconda libpng была ошибка, которая могла вызвать эту проблему, и было предложено обновить ее. Я сделал это безрезультатно, поэтому, для хорошей меры, я также вернулся и убедился, что на моих машинах установлена самая последняя версия libpng. Опять без изменений.
Кроме того, я попробовал несколько различных вариантов и условий работы кода без изменений. Конкретно я пробовал:
- изменив изображение на
.jpg
. Ошибка не появляется, очевидно, потому что она больше не использует libpng, но изображение все еще возвращается как NoneType.
- передает дополнительные флаги, такие как
cv2.IMREAD_GRAYSCALE
- Установка opencv (обе версии 3.4.4.19 и 3.4.5.20) и numpy в virtualenv и запуск его.
- Запуск его на моем ноутбуке с Windows (Anaconda 3.6.5) с использованием WSL и Raspberry Pi (3.5.3)
Кроме того, я использую OpenCV более двух лет без особых проблем, и мне больно, что я не могу заставить что-то настолько простое / глупо работать. Я собираюсь начать изучать документы libpng, но я был бы очень признателен за любые ваши комментарии или мысли.