Читать несколько изображений из одного каталога с помощью imageio

jjjjjj спросил: 28 марта 2018 в 04:32 в: python

У меня есть каталог test/ с изображениями 0.jpg и 1.jpg. Как я могу использовать imageio mimread функцию, чтобы указать каталог test и читать bot 0 и 1 ? Или это не то, для чего это предназначено?

Я пробовал imageio.mimread(uri="/path/to/test/", format=".jpg"), но получил следующее:

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-43-89a6d166a345> in <module>()
----> 1 imageio.mimread(uri="test", format=".jpg", memtest=True)/Users/myuser/anaconda/envs/python3/lib/python3.5/site-packages/imageio/core/functions.py in mimread(uri, format, memtest, **kwargs)
    279 
    280     # Get reader
--> 281     reader = read(uri, format, 'I', **kwargs)
    282 
    283     # Read/Users/myuser/anaconda/envs/python3/lib/python3.5/site-packages/imageio/core/functions.py in get_reader(uri, format, mode, **kwargs)
    127 
    128     # Return its reader object
--> 129     return format.get_reader(request)
    130 
    131 /Users/myuser/anaconda/envs/python3/lib/python3.5/site-packages/imageio/core/format.py in get_reader(self, request)
    165         if select_mode not in self.modes:
    166             raise RuntimeError('Format %s cannot read in mode %r' % 
--> 167                                (self.name, select_mode))
    168         return self.Reader(self, request)
    169 RuntimeError: Format JPEG-PIL cannot read in mode 'I'

2 ответа

intentionally left blank ответил: 28 марта 2018 в 04:36

В документации сказано:

uri: {str, pathlib.Path, bytes, file} >

Ресурс для загрузки изображений, например. имя файла, pathlib.Path, адрес http или объект файла, для получения дополнительной информации см. документы.

Попробуйте imageio.mimread(uri='test').

jjjjjj ответил: 28 марта 2018 в 04:41
Спасибо, но не повезло, добавив uri= перед моим путем. Я отредактировал вопрос, чтобы лучше показать мою проблему.
intentionally left blank ответил: 28 марта 2018 в 04:42
Что просходит? Вы получаете ошибку? Пожалуйста, измените ваш вопрос и включите соответствующие части вашего кода, которые нам нужны, чтобы воспроизвести вашу проблему.
LWixson ответил: 22 апреля 2018 в 03:07

Я просмотрел исходный код для imageio и не вижу никакой поддержки в mimread () для перебора файлов в папке для чтения в нескольких изображениях. Я рекомендую вместо этого использовать scikit-изображение. Вот пример:

from skimage.io import imread_collection
seq = imread_collection("*.jpg", conserve_memory=True)

Затем вы можете индексировать в seq для получения каждого изображения:

seq[0]seq[1]

и т. Д.