我正在阅读有关32 X 32 RGB图像的信息。因此它是具有形状(32,32,3)的3D阵列,第三维保持颜色R,G和B
现在,我想阅读50个这样的图像并制作这些图像的数组。所以我决定制作一个4D阵列,其尺寸(50,32,32,3)在这里50在第一维度是图像的数量,第二,第三和第四维度是图像的维度是(32, 32,3)
我尝试使用连接但我收到错误。有没有办法做到这一点?
答案 0 :(得分:9)
您需要在连接之前添加轴,例如
import numpy as np
arrs = [np.random.random((32, 32, 3))
for i in range(50)]
res = np.concatenate([arr[np.newaxis] for arr in arrs])
res.shape
# (50, 32, 32, 3)
编辑:或者,在这种情况下,您只需在数组列表中调用np.array
:
res = np.array(arrs)
res.shape
# (50, 32, 32, 3)
答案 1 :(得分:2)
更容易在图像中添加另一个轴并附加它们
old_image = np.ones((100,100,3))
new_image = np.ones((100,100,3,1))
# lets jsut say you have two Images
old_image = np.reshape(old_image , (100,100,3,1))
new_image = np.reshape(new_image , (100,100,3,1))
directory = np.append( new_image , old_image , axis = 3)