Python: ImageIO ValueError в VirtualEnv

Я использую imageio сгенерировать GIF из набора PNG, которые я создал с помощью PIL. Вот мой код (найден здесь):

    import imageio

    path = "./img/"
    os.chdir(path)
    filenames = sorted((fn for fn in os.listdir('.') if fn.endswith('.png')))

    with imageio.get_writer('./img/movie.gif', mode='I') as writer:
        for filename in filenames:
            image = imageio.mimread(filename)
            writer.append_data(image)

Тем не менее, я продолжаю получать следующую ошибку:

    Traceback (most recent call last):
      File "gifcreate.py", line 7, in <module>
        image = imageio.mimread(filename)
      File "/Users/felipe_campos/Documents/DECO/venv/lib/python2.7/site-packages/imageio/core/functions.py", line 261, in mimread
        reader = read(uri, format, 'I', **kwargs)
      File "/Users/felipe_campos/Documents/DECO/venv/lib/python2.7/site-packages/imageio/core/functions.py", line 108, in get_reader
'in mode %r' % mode)
    ValueError: Could not find a format to read the specified file in mode 'I'

У кого-нибудь есть идеи относительно того, что я могу сделать? Я пытался запустить его за пределами виртуальной среды, но он продолжает говорить мне ImportError: No module named imageio (то же самое со Scipy и несколькими другими модулями), так что я не знаю, что делать.

РЕДАКТИРОВАТЬ:

Разобрался, просто используйте imread (имя файла) вместо mimread (имя файла), и все заработало нормально.

1 ответ

Это выглядит как дефект / ошибка.

for filename in filenames:

в этом случае имена файлов - это str, который является итеративным, и python с радостью перебирает его.

Почему бы не попробовать filenames = ['./img/', ] и посмотрим, что получится.

(Очень быстрый взгляд на документы для imageio, и я не уверен, что вызывающая подпись ожидает каталог - я думаю, что он ищет фактическое имя файла)

uri : {str, bytes, file}

The resource to load the images from. This can be a normal filename, a file in a zipfile, an http/ftp address, a file object, or the raw bytes.

Если вы хотите выполнить итерацию по всем файлам в каталоге, возможно, посмотрите на os в python.

Другие вопросы по тегам