You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

tkinter多摄像头监控场景下Label标签自动更新问题求助

问题修复方案

画面无法更新的核心原因是Frames_video()仅在应用初始化时执行一次,没有持续调度刷新。你之前尝试after方法不生效,通常是没有把递归调用逻辑写在Frames_video()内部。

修改步骤

  1. 调整Frames_video()方法,增加读取成功判断,避免单路摄像头断开导致程序崩溃
  2. 在方法末尾通过after实现循环调用,定时刷新所有摄像头画面

修改后的Frames_video()代码如下:

def Frames_video(self):
    for i in range(8):
        ret,frame=self.caps[i].read()
        if not ret:
            continue
        frame=cv2.resize(frame,(211,181))
        img=cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)
        img=Image.fromarray(img)
        img=ImageTk.PhotoImage(img)
        self.labels[i].configure(image=img)
        self.labels[i].image=img
    # 30为刷新间隔(毫秒),对应约33帧/秒,可根据需求调整
    self.master.after(30, self.Frames_video)

替换原有代码中的对应方法即可实现多路摄像头实时预览。如果你需要调整画面流畅度,修改after方法的第一个参数数值即可,数值越小帧率越高,对设备性能要求也越高。

内容的提问来源于stack exchange,提问作者Daniel Babaian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:54:03