[英]Read multiple images from same directory with imageio
我有一个目录test/
其中包含图像0.jpg
和1.jpg
。 如何使用imageio
的mimread
函数指定目录test
并读取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'
我查看了 imageio 的源代码,但我没有看到 mimread() 支持遍历文件夹中的文件以读取多个图像。 我建议改用 scikit-image。 下面是一个例子:
from skimage.io import imread_collection
seq = imread_collection("*.jpg", conserve_memory=True)
然后你可以索引到 seq 以获取每个图像:
seq[0]
seq[1]
等。
文档说:
uri : {str, pathlib.Path, bytes, file}>
加载图像的资源,例如文件名、pathlib.Path、http 地址或文件对象,请参阅文档以获取更多信息。
试试imageio.mimread(uri='test')
。
或者这不是它的意思?
正确。 mimread
适用于能够在同一文件中存储多个图像的图像格式。 这种格式的一个半流行示例是.tiff
,它具有页面的概念,其中可能包含不同的图像。 另一个是.psd
(photoshop 格式)。
如果要从文件夹中读取图像,可以使用生成器表达式以传统方式进行(假设您的文件夹仅包含要读取的图像)
(iio.imread(filename) for filename in glob.glob(folder))
或者您可以更复杂一些,并根据您的需要编写递归读取和/或过滤文件的内容。
def read_folder(folder, ...):
for item in glob.glob(folder):
if matches_image_filter(item):
yield iio.imread(item)
elif matches_subfolder_filter(item):
yield from read_folder(item, ...)
你明白了;)
注意:这不是我第一次听说mimread
令人困惑,所以如果您有关于如何提高清晰度的建议,请随时发表评论,我很乐意更新文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.