Python:VirtualEnv中的ImageIO ValueError

时间:2017-03-15 18:15:03

标签: python python-2.7 image-processing gif python-imageio

我使用imageio从我使用PIL创建的一组PNG生成GIF。这是我的代码(找到here):

    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(filename)而不是mimread(filename),它运行正常。

1 个答案:

答案 0 :(得分:1)

这看起来像是一个缺陷/错误。

for filename in filenames:

在这种情况下,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.

如果您想要做的是对目录中的所有文件进行迭代,可以在python中查看os。