Менять форму изображения matplotlib

как мог бы менять форму одного массив?, загрузите файл в formto .mat, и когда я это читаю и приношу изображения, которые находятся в массивах, он дает мне следующую форму:

import h5py
file = h5py.File('file.mat','r')
imgs = file["images"]
print(imgs.shape)
(2284, 3, 640, 480)

Если я хочу plotearlos, он не смог бы, потому что plt.imshow () он был бы должен получать массивы формы (2284,640,480,3), пробуйте с reshape давая ему форму, которую я хочу, но у plotearlo выходит изображение, которое не правильно:

x = imgs[0].reshape(640,480,3)
plt.imshow(x) #ploteo

introducir la descripción de la imagen aquí

Я протестировал следующее:

img = imgs[0] # tomo la primera imagen 3x640x480
aux = list()
for i in range(img.shape[0]): #recorre 3 veces
   aux.append(img[i])
x = np.dstack(a) # junto las 3 matrices
plt.imshow(x) #ploteo

introducir la descripción de la imagen aquí

Есть какой-то способ делать это более простым или функция??

0
задан 13.03.2019, 12:59
1 ответ

То, что ты можешь делать, состоит в том, чтобы двигать axis каналов c в нее posiciГіn конец так что matplotlib он может видеть их imГЎgenes обычно.

Переходить из (n, c, w, h) в массив (n, w, h, c), ты двигаешь axis 1 в нее posiciГіn конец -1

    imgs = np.moveaxis(imgs, 1, -1)
0
ответ дан 19.11.2019, 22:14