我想将 pyqtgraph 导出到视频。有什么简单的方法可以做到这一点吗?该图与此示例没有太大区别,只是它包含大约 10000 帧:
from pyqtgraph.Qt import QtGui, QtCore
import numpy as np
import pyqtgraph as pg
app = QtGui.QApplication([])
win = pg.GraphicsWindow(title="Basic plotting examples")
win.resize(1000,600)
pg.setConfigOptions(antialias=True)
p6 = win.addPlot(title="0")
curve = p6.plot(pen='y')
data = np.random.normal(size=(10,1000))
ptr = 0
def update():
global curve, data, ptr, p6
data_ptr = ptr%10
p6.setTitle("%d" % data_ptr)
curve.setData(data[data_ptr])
if ptr == 0:
p6.enableAutoRange('xy', False)
ptr += 1
timer = QtCore.QTimer()
timer.timeout.connect(update)
timer.start(50)
每一帧只是一个图像。所以你可以使用图像导出器 https://github.com/pyqtgraph/pyqtgraph/blob/master/pyqtgraph/exporters/ImageExporter.py为每一帧生成图像。这toBytes
导出函数的参数将返回*.png
文件存储在内存中,尽管您也可以对它们进行编号并将它们保存在临时目录中。
pyqtgraph 中给出了将图形导出到文件的示例用户指南 https://pyqtgraph.readthedocs.io/en/latest/user_guide/exporting.html#exporting-from-the-api.
然后您可以使用 ffmpeg 将它们排序在一起。
如果您选择导出到单独的文件选项,则可以使用 ffmpeg 命令行,如下所示:如何使用 FFmpeg 从图像创建视频? https://stackoverflow.com/questions/24961127/how-to-create-a-video-from-images-with-ffmpeg
但是,如果您将所有帧存储在内存中,则可以使用 ffmpeg python 绑定,尽管我没有这方面的示例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)