Преобразовать массив NumPy - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть массив NumPy Data размером 1D [36*64].В основном, у меня есть 36, 8*8 изображения, хранящиеся в массиве 1D.Каждое изображение хранится в формате Height(8)*Width(8).

Например: i th изображение сохраняется из Data[i*8*8 : (i*8*8 + 8*8)].

Теперь я хочу сделать плитку из изображений из заданных 36 изображений, то есть 6 изображений, накладываемых друг на друга. Пример .

По сути, я хочу преобразовать мой массив 1D Numpy в двумерный массив изображений в указанном выше формате.

Я бы предпочел ответы, используя только методы Numpy.

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Если я вас правильно понимаю, вы можете сделать это следующим образом

# make example data
a = np.linspace(0, 36*64-1, 36*64)
print(a[:64])
print(a.shape)

# reshape 1D to 3D array
b = a.reshape(-1, 8, 8)
# look at first "image"
print(b[0])

Если я вас не правильно понял, вам нужно поставить -1, 8, 8 в другом порядке.

0 голосов
/ 03 декабря 2018

Чтобы преобразовать массив 1D в 2D, используйте reshape, как показано в примере:

# Creating 36 images each of shape 8x8
initial_1D = np.random.randn(2304).reshape(36, 8, 8)

Коллаж можно сформировать с помощью PIL.Для ясного понимания см. Здесь Создание коллажа в PIL

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