将图像加载到numpy数组中

将图像加载到numpy数组中,numpy,scipy,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>) 其中我得到了以下错误: ValueError:无法将输

我正在尝试将一组图像像素数据加载到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>)
其中我得到了以下错误:

ValueError:无法将输入数组从形状(128128,3)广播到形状(128128)

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

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


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

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

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

看起来您的一个图像不是128x128x3。你确定你的文件中没有128x128形状的单色图像吗?@WarrenWeckesser是
单色图像
只是
灰度
图像的一个花哨词?@WarrenWeckesser你几乎是对的。结果是我有一个深度为4个通道的图像。不确定哪里出了问题,但我用另一个正常深度为3的替换了它,它工作了。谢谢你,沃伦@WarrenWeckesser请将此作为答案发布,以便我可以接受并结束此问题。谢谢看起来您的图像之一不是128x128x3。你确定你的文件中没有128x128形状的单色图像吗?@WarrenWeckesser是
单色图像
只是
灰度
图像的一个花哨词?@WarrenWeckesser你几乎是对的。结果是我有一个深度为4个通道的图像。不确定哪里出了问题,但我用另一个正常深度为3的替换了它,它工作了。谢谢你,沃伦@WarrenWeckesser请将此作为答案发布,以便我可以接受并结束此问题。谢谢
images = [misc.imread(path) for path in glob.glob('extra_signs/*.png')]
images = np.asarray(images)