将图像加载到numpy数组中

时间:2017-04-24 21:22:16

标签: numpy scipy

我正在尝试将一堆图像像素数据加载到一个numpy数组中,但面临着弄清楚如何填充dtype字段的问题。

我的图像尺寸为128 x 128 x 3,类型为uint8,并按如下方式加载:

import glob
from scipy import misc
images = np.fromiter((misc.imread(path) for path in glob.glob('images/*.png')), <dtype_field>)

misc.imread将每个图像加载为numpy数组,但我面临的问题是将此图像列表本身转换为numpy数组。

尝试以下操作但不起作用:

images = [misc.imread(path) for path in glob.glob('extra_signs/*.png')]
images = np.asarray(images)

我收到以下错误:

  

ValueError:无法将形状(128,128,3)的输入数组广播为形状(128,128)

将dtype设置为np.uint8会引发以下错误:

  

ValueError:使用序列设置数组元素。

注意:我查看了stackoverflow,我发现了如何将图像读入numpy数组的问题,但没有将所有图像读入单个数组。

1 个答案:

答案 0 :(得分:2)

检查您正在阅读的所有图像的大小。显然,其中至少有一个不是128x128x3。