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

时间:2019-06-12 07:40:40

标签: python python-3.x python-2.7 scikit-image

我正在从以下代码读取文件夹中的所有图像

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

获取形状或尺寸的我使用以下:

col.shape

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

如何解决这个问题

3 个答案:

答案 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()并不总是准确的。