从 .npy 获取视频

Get video from .npy

如何从 numpy 数组中获取视频?

我有代码:

frame = np.load('dataset3.npy')[:, 160:-215]
fig = plt.figure()

cmap = plt.cm.jet
norm = Normalize(vmin=450, vmax=550)
frame1 = ndimage.grey_closing(frame, size=(17, 17))
frame2 = cmap(norm(frame1))
    
plt.imshow(frame2, cmap=cmap)
plt.colorbar()
plt.show()

frame2[0] = [[0.38899431, 1.        , 0.57874763, 1.        ], [0.38899431, 1.        , 0.57874763, 1.        ] ... ]

如何在视频中保存多个“frame2”?

我觉得应该是这样的,但是少了点东西:

files = os.listdir('dataset0')
out = cv2.VideoWriter('output1.mp4', cv2.VideoWriter_fourcc(*'mp4v'), 25, (1280, 720), False)

for i in files:
    frame = np.load('dataset\500\' + i)

    cmap = plt.cm.jet
    norm = Normalize(vmin=450, vmax=550)
    frame1 = ndimage.grey_closing(frame, size=(17, 17))
    frame2 = cmap(norm(frame1))

    out.write(frame2)

out.release()
import matplotlib.pyplot as plt
from matplotlib.colors import Normalize
from scipy import ndimage
from matplotlib import animation

files = os.listdir('dataset\{}'.format(folder_name))

fig = plt.figure()
myimages = []


for i in files:
    frame = np.load('dataset\{}\'.format(folder_name) + i)[:, 160:-215]
    cmap = plt.cm.jet
    norm = Normalize(vmin=450, vmax=550)
    frame1 = ndimage.grey_closing(frame, size=(17, 17))
    frame2 = cmap(norm(frame1))
    imgplot = plt.imshow(frame2, cmap=cmap)
    myimages.append([imgplot])

my_anim = animation.ArtistAnimation(fig, myimages, interval=50, blit=True, repeat_delay=2000)

f = 'animation.mp4'
writervideo = animation.FFMpegWriter(fps=20)
my_anim.save(f, writer=writervideo)