我正在从以下代码读取文件夹中的所有图像
from skimage.io import imread_collection
img_dir = 'cats/*.jpg'
col = imread_collection(img_dir)
获取形状或尺寸的我使用以下:
col.shape
但是得到AttributeError: 'ImageCollection' object has no attribute 'shape'
如何解决这个问题
答案 0 :(得分:1)
ImageCollection
是图像列表,因此您必须使用其索引访问单个图像。
来自docs:
>>> coll = io.ImageCollection(data_dir + '/chess*.png')
>>> len(coll)
2
>>> coll[0].shape
(200, 200)
答案 1 :(得分:1)
尝试len而不是形状。尝试col [0] .shape,目录列表不能具有形状,图像不能具有形状。因此在列表中进行迭代并获得许多图像的所有形状。
答案 2 :(得分:1)
作为上面接受的答案,您可以使用len(col)
来确定集合的长度,即集合中有多少个图像。
但是我认为问题标题有点误导,有人可能会认为您要实现的目的是获取对象的大小(即以字节为单位),在这种情况下,您可以使用sys.getsizeof(col)
并这将返回该对象的大小(以字节为单位),请参见this answer
P.S。此答案应该作为评论发布,但是我没有足够的代表,对SO社区表示歉意,所以不能这样做。
编辑:
如果您有兴趣获取对象的字节数,请浏览this question下发布的其他答案,因为sys.getsizeof()
并不总是准确的。