Как я могу создать четырехмерный массив из изображений? - PullRequest
0 голосов
/ 06 мая 2018

У меня есть несколько изображений, которые я конвертирую в трехмерные массивы. Я хотел бы объединить все эти массивы изображений в один большой массив numpy (такой, что индекс 0 этого большого массива является трехмерным массивом 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 голосов
/ 06 мая 2018

Если все массивы изображений имеют одинаковую форму, например (128, 128, 3), тогда np.stack будет хорошо работать

np.stack(alist_images, axis=0)

должен создать массив (n, 128, 128, 3).

На самом деле np.array(alist_images) также должно работать, но stack позволяет вам выбрать другую ось, к которой они присоединяются, например, (128, 128, 3, n)

Если он жалуется на несоответствие размеров, то у вас нет списка подходящих массивов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...