Python ValueError:无法将输入数组从形状(64,64,4)广播到形状(64,64)

Python ValueError:无法将输入数组从形状(64,64,4)广播到形状(64,64),python,numpy,Python,Numpy,我无法在此处将列表转换为数组: X = np.array(X) y = np.array(y) 其中X和y为: X = [] y = [] for fName in imgFiles: X_i = Image.open(fName) X_i = np.array(X_i.resize((64,64)))/255.0 eList = fName.split(os.path.sep) X.append(X_i) label = eList[1].split

我无法在此处将列表转换为数组:

X = np.array(X)
y = np.array(y)
其中X和y为:

X = []
y = []

for fName in imgFiles:
    X_i = Image.open(fName)
    X_i = np.array(X_i.resize((64,64)))/255.0
    eList = fName.split(os.path.sep)
    X.append(X_i)
    label = eList[1].split('_')
    fLabel = label[6].split('.')
    y.append(fLabel[0])
以下是错误:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-23-6c4156275ea8> in <module>()
----> 1 X = np.array(X)
      2 y = np.array(y)

ValueError: could not broadcast input array from shape (64,64,4) into shape (64,64)

我认为至少有一个图像具有不同的维度,但如何解决这一问题。

之所以会出现这种情况,是因为列表X中并非所有元素都是三维的。这似乎是因为您的一些图像文件可能是灰度的,而其他文件可能是非灰度的


确保列表X中的所有元素都具有相同的维度,并且应解决此问题。

您在哪一行代码处面临此问题?您还可以提到显示的错误吗?谢谢您的回复。我已经编辑了这个问题。所有图像都在.BMP中,我将它们更改为.pgm用于灰度,现在如果我想检查目录中所有图像的大小,您建议使用什么?