tkinter使用label视频播放

这篇博客介绍了如何利用Python的tkinter库通过Label控件来实现视频流播放。核心在于将OpenCV的Mat转换为PIL图像,再转化为tkinter支持的格式,并利用Label控件结合after函数实现图像的定时更新。此外,文章还提及了tkinter的布局管理,包括绝对布局、相对布局和表格布局,以及如何通过组合Frame实现更复杂的界面布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tkinter是python的界面开发包

使用tkinter显示视频流的一个办法是使用label来逐帧显示图片。

from Tkinter import *
from PIL import ImageTk, Image
import cv2


root = Tk()
# Create a frame
app = Frame(root, bg="white")
app.grid()
# Create a label in the frame
lmian = Label(app)
lmain.grid()

# Capture from camera
cap = cv2.VideoCapture(0)

# function for video streaming
def video_stream():
    _, frame = cap.read()
    cv2image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA)
    img = Image.fromarray(cv2image)
    imgtk = ImageTk.PhotoImage(image=img)
    lmain.imgtk = imgtk
    lmain.configure(image=imgtk)
    lmain.after(1, video_stream) 

video_stream()
root.mainloop()

代码很简单,有几个点需要说明:

1. Lable控件

import Tkinter as tk
photo = tk.PhotoImage(file="hello.gif") 
Lab= tk.Label(root,text='欢迎',compound='center&#
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值