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&#