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用于灰度,现在如果我想检查目录中所有图像的大小,您建议使用什么?