整批重整图像数据

时间:2018-08-05 16:08:27

标签: python numpy keras

我遇到一个Numpy形状问题。我有一批128x128x3的图片,我试图将列表的形状调整为batch_size x 128 x 128 x 3。

让我们逐步了解到目前为止。

我们有3个列表,其中包括图像和其他一些元数据。视觉上:

my_data

|row|raw_image|meta_data1|meta_data2| 
-------------------------------------
|1  |128x128x3|8685      |'here'    |
-------------------------------------
|2  |128x128x3|8402      |'there'   |
-------------------------------------
|3  |128x128x3|5498      |'where'   |

print(my_data.shape) #(3,4)

我们只想获取raw_image数据:

image_data = my_data[:, 1]
print(image_data.shape) #(3,)
print(image_data[0].shape) #(128,128,3)

我认为image_data已经在3x128x128x3中,但是出现错误,例如:

  

ValueError:检查时出错:预期input_1具有4维,但数组的形状为(384,128,3)

  

ValueError:检查时出错:预期input_1具有4维,但数组的形状为(3,1)

我已经尝试过重塑,就像这样:

np.reshape(image_data, (3, 128, 128, 3))

但是出现以下错误:

  

ValueError:无法将大小为3的数组重塑为形状(3,128,128,3)

那么,我应该如何进行?我已经尝试过与vstack结合使用,调整形状,扩展暗淡,消除暗淡...

1 个答案:

答案 0 :(得分:2)

image_data是一个对象数组,您可以使用np.stack(image_data)合并它们;这应该按照第一个轴将所有图像堆叠在image_data内,并根据需要创建4d数组。