如何知道图像采集对象的形状

How to know shape of image collection object

我正在通过以下代码读取一个文件夹的所有图像

from skimage.io import imread_collection
img_dir = 'cats/*.jpg'
col = imread_collection(img_dir)

为了获得 col 的形状或大小,我使用了以下方法:

col.shape

但得到AttributeError: 'ImageCollection' object has no attribute 'shape'

如何解决这个问题

ImageCollection 是图像列表,因此您必须使用索引访问单个图像。

来自docs

>>> coll = io.ImageCollection(data_dir + '/chess*.png')
>>> len(coll)
2
>>> coll[0].shape
(200, 200)

尝试使用 len 而不是 shape。尝试 col[0].shape ,目录列表不能有形状,图像有。所以在列表中迭代并获得许多图像的所有形状。

作为上面接受的答案,您可以使用len(col)来确定collection的长度,即collection中有多少张图片。

但我认为问题标题有点误导,有人可能会认为您要实现的是获取 object 的大小(即以字节为单位),在这种情况下,您可以使用sys.getsizeof(col) 并且这将 return 这个 object 的大小,以字节为单位,参见 this answer

P.S。这个答案应该作为评论发布,但我不能这样做,因为没有足够的代表,向 SO 社区道歉。


编辑: 如果您有兴趣获取 object 的字节大小,请查看 this question 下发布的其他答案,因为 sys.getsizeof() 并不总是准确的。