как мог бы менять форму одного массив?, загрузите файл в 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
Я протестировал следующее:
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
Есть какой-то способ делать это более простым или функция??
То, что ты можешь делать, состоит в том, чтобы двигать 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)