Я получаю ValueError
в numpy при выполнении операций с изображениями. Кажется, проблема в том, что изображения, отредактированные Paint. NET, не имеют размера RGB при открытии с использованием PIL и преобразовании в массив numpy.
Вот пример: нарисуйте строку в MS Paint, сохраните его как файл PNG, откройте его в Paint. NET, затем используйте инструмент magi c, чтобы удалить белый фон, чтобы он был прозрачным. Затем используйте следующий код для исходного изображения PNG из MS Paint и отредактированного изображения PNG в Paint. NET:
numpy.asarray(Image.open(imagePath)).shape
Когда я попробовал это на исходном изображении из MS Paint, размеры изображения были (861, 1091, 3)
. Однако размеры изображения после удаления фона в Paint. NET - (861, 1091)
вместо (861, 1091, 4)
(4 из-за прозрачного слоя). Кажется, что оба изображения хорошо открываются в моем приложении для просмотра фотографий, так что на самом деле с изображением все в порядке.
Кто-нибудь сталкивался с этой проблемой раньше? Я использую принятое решение здесь для усреднения некоторых изображений, но оно не работает, так как изображения PNG из Paint. NET, похоже, отсутствует измерение RGB. Я новичок в PIL
, но я не ожидал, что код не будет работать для некоторых изображений PNG. Что вызывает эту странную проблему?