当前位置: 代码迷 >> 综合 >> Python-Tkinter 调试视频
  详细解决方案

Python-Tkinter 调试视频

热度:19   发布时间:2023-12-21 22:59:09.0
# 导入库
import PIL
from PIL import Image,ImageTk
import cv2
from tkinter import *# 设定宽度、高度
width, height = 800, 540
cap = cv2.VideoCapture(0)# 设置宽度,高度
cap.set(cv2.CAP_PROP_FRAME_WIDTH, width)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, height)root = Tk()
root.bind('<Escape>', lambda e: root.quit())def motion(event):pos = ("(%s x %s)" % (event.x, event.y))possition_lb.configure(text=pos)def show_frame():# 从摄像头获取图片_, frame = cap.read()frame = cv2.flip(frame, 1)# 将图片类型从 BGR 转换为 RGB 或 RGBAcv2image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)# 转换为 PIL图片img = PIL.Image.fromarray(cv2image)imgtk = ImageTk.PhotoImage(image=img)img_lb.imgtk = imgtk# 配置要显示的?????图片img_lb.configure(image=imgtk)# 10 毫秒后调用 show_frame()img_lb.after(10, show_frame)# 设定标签以显示视频???????
img_lb = Label(root,width=800,height=560)
# 捕捉鼠标
img_lb.bind('<Motion>',motion)
img_lb.pack()text_lb = Label(root,width=15,height=2, text= "Mouse position :")
text_lb.place(x=2, y=575)
# 设定标签以显示位置???????
possition_lb = Label(root,width=20,height=2)
possition_lb.place(x=100, y=575)show_frame()
root.geometry("800x600")
root.mainloop()