如何从图像创建4D numpy数组?

时间:2018-05-06 03:21:07

标签: python arrays numpy image-processing

我有一些图像,我正在转换为3D numpy数组。我想将所有这些图像数组聚合成一个大的numpy数组(这个大数组的索引0是代表我的图像的3D numpy数组)。

这样做的最佳方式是什么?

我的图片形状如下:

(128, 128, 3) # shape of each image
[[[119  95  59]
  [118  94  58]
  [120  96  60]
  ...
  [110  89  51]
  [111  89  54]
  [116  93  61]]

 [[136 112  76]
  [139 115  79]
  [141 117  81]
  ...
  [114  93  55]
  [119  97  62]
  [114  91  59]]

 [[127 103  67]
  [127 103  67]
  [134 110  74]
  ...
  [110  89  51]
  [115  93  57]
  [119  97  62]]

 ...

 [[116  92  68]
  [105  83  55]
  [109  87  52]
  ...
  [119  99  58]
  [125 102  64]
  [120  97  59]]

 [[111  90  68]
  [111  89  64]
  [105  84  53]
  ...
  [123 101  60]
  [121  96  56]
  [129 104  64]]

 [[109  90  69]
  [105  85  60]
  [105  84  56]
  ...
  [121  99  58]
  [128 102  62]
  [129 104  62]]]

1 个答案:

答案 0 :(得分:0)

如果所有图像阵列都具有相同的形状,例如(128,128,3),那么np.stack将很好地完成

np.stack(alist_images, axis=0)

应生成(n,128,128,3)数组。

实际上np.array(alist_images)也应该有效,但stack可让您选择另一个轴来加入它们,例如(128,128,3,n)

如果它抱怨维度不匹配,那么您没有匹配数组的列表。