繁体   English   中英

当我加载图像数据并将其传输到数组时,Python numpy ValueError

[英]Python numpy ValueError when I load image data and transfer it to an array

我找不到解决方法。我的图像形状是128 * 128 * 3,它具有三个通道,但是也会引起错误

在load_data数据中的文件“ E:/ML/keras_test/vgg.py”第30行[i,:,:,:] = arr

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

我的代码如下:

def load_data(path):
data = np.empty((12755,128,128,3),dtype="uint8")
label = np.empty((12755,),dtype="uint8")


imgs = []
imgs_name = []
for each_person in os.listdir(path):
    temp = os.path.join(path,each_person)
    for each_image in os.listdir(temp):
        imgs.append(temp + "\\" + each_image)
        imgs_name.append(each_image)  

num = len(imgs)
for i in range(num):
    img = Image.open(imgs[i])
    arr = np.asarray(img,dtype="uint8")
    print arr.shape
    data[i,:,:,:] = arr
    label[i] = int(imgs_name[i].split('.')[0])

print 'load_data is ok!' + str(data.shape[0])
return data,label

您试图将原始数据放入一个小包装中,这是不可能的。 我认为您正在尝试将具有RGB通道的图像转换为具有一个通道的灰度图像。 尝试

基准=(imgs.sum(axis = 2)/ 3).reshape((12755,-1))

生成的datum12755 x 16384数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM