python创建可视化窗口 播放所选择的视频

import tkinter as tk
import cv2

# 创建主窗口
root = tk.Tk()
root.title("人脸检测应用")
root.geometry("450x300")

 创建一个标签用于显示视频  窗口实例化名称为root
video_label = tk.Label(root,text='lable')
video_label.pack()

def play_video():
    file_path = filedialog.askopenfilename(filetypes=[("视频文件", "*.mp4 *.avi *.mkv *.mov")])
    cap = cv2.VideoCapture(file_path)
    progress_bar = ttk.Progressbar(root, orient="horizontal", length=400, mode="determinate")
    progress_bar.pack(side='left')
    while True:
        ret, frame = cap.read()#ret是一个布尔值 用来判断帧读取是否成功
        if not ret:
            break
        frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) #将读取的视频帧从BGR颜色空间转换为RGB颜色空间。这是因为PIL库需要RGB颜色空间。
        image = Image.fromarray(frame) #将帧数据转换为PIL图像对象。
        photo = ImageTk.PhotoImage(image=image)#将PIL图像对象转换为Tkinter PhotoImage对象,以便在Tkinter标签中显示。
        video_label.config(image=photo)#将标签(video_label)的图像配置为当前帧的PhotoImage,从而更新标签上显示的图像。
        video_label.image = photo#将标签的image属性设置为当前帧的PhotoImage对象,以确保图像不会被垃圾回收。
        root.update()#用于更新Tkinter窗口的显示,以便显示新的视频帧
        # 控制帧速率,例如每秒显示 30 帧
        time.sleep(1 / 30)  # 这里的参数可以调整,以控制帧速率
cap.release()

# 创建一个按钮来触发视频播放
play_button = tk.Button(root, text="播放视频", command=play_video)
play_button.pack()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值