加快素材的实时打印(cv2)

加快素材的实时打印(cv2),第1张

加快素材的实时打印(cv2)

这个问题的答案显示了两种在matplotlib中获取视频的方法。

要点是不要在每次迭代时都重新创建完整的图。如果使用该答案中的第二种方法,则使用

blit=True
可能会进一步提高速度。如下面的代码所示。

import cv2import pandas as pdimport numpy as npimport matplotlib.pyplot as pltfrom matplotlib.animation import FuncAnimationdf = pd.Dataframe({"time": np.linspace(0,20, num=100),         "force" : np.cumsum(np.random.randn(100))})def grab_frame(cap):    ret,frame = cap.read()    return frame # or cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)#Initiate vidcap = cv2.VideoCapture(0)# vidcap.set(1,590)fig, (ax,ax2) = plt.subplots(ncols=2,figsize=(20, 10))x=df["time"][7:100]y=df["force"][7:100]#create two image plotsim1 = ax.imshow(grab_frame(vidcap),extent=[0,200,0,100], aspect='auto')line, = ax2.plot(x[0:1],y[0:1],'or')ax2.set_xlim(x.min(), x.max())ax2.set_ylim(y.min(), y.max())def update(i):    im1.set_data(grab_frame(vidcap))    line.set_data(x[0+i:1+i],y[0+i:1+i])    return im1, lineani = FuncAnimation(fig, update, frames=len(x), interval=1, blit=True)plt.show()


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5667887.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存