【发布时间】:2016-09-24 20:35:04
【问题描述】:
我找到了这个小代码,我可以使用它保存一个视频(在网格中随机改变颜色):
import numpy as np
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from scipy import rand
Writer = animation.writers['ffmpeg']
writer = Writer(fps=15, metadata=dict(artist='xy'), bitrate=3600)
fig = plt.figure()
frames = []
for add in np.arange(15):
base = rand(10, 10)
frames.append((plt.pcolormesh(base, ),))
im_ani = animation.ArtistAnimation(fig, frames, interval=500, repeat_delay=3000,
blit=True)
im_ani.save('Vid.mp4', writer=writer)
我尝试将其插入到我的模拟中,我没有收到任何错误,但视频是空的,整个画面都是白色的。你能帮我解决这个问题吗?这是我得到它的最简单的情况:
class Dummy():
def __init__(self):
self.video=[]
def addFrame(self):
Frame=rand(10,10)
print (Frame)
self.video.append((plt.pcolormesh(Frame),))
def saveVideo(self):
Writer = animation.writers['ffmpeg']
writer = Writer(fps=15, metadata=dict(artist='XY'), bitrate=3600)
fig = plt.figure()
im_ani = animation.ArtistAnimation(fig, self.video, interval=500, repeat_delay=3000,
blit=True)
im_ani.save('myVid.mp4', writer=writer, dpi=dpi)
你可以试试:
from scipy import rand
foo=Dummy()
for i in range(20):
foo.addFrame()
foo.saveVideo()
【问题讨论】:
-
我怀疑
self.video.append((plt.pcolormesh(Frame),))行是错误的。我不明白 , 分隔符和括号' 。 if Iremove 它们,错误,在示例中也是如此。
标签: python numpy video matplotlib simulation