如何让opencv摄像头视频显示在tkinter上
时间: 2023-05-09 10:02:51 浏览: 431
在Python语言中,使用OpenCV库来调用摄像头捕获实时视频,并在Tkinter上显示视频流。具体步骤如下:
1. 导入所需库:
```
import tkinter as tk
import cv2
from PIL import Image, ImageTk
```
2. 创建Tkinter窗口与标签控件:
```
root = tk.Tk()
root.title('WebCam')
label = tk.Label(root, width=600, height=400)
label.pack()
```
3. 创建摄像头对象,打开默认摄像头:
```
camera = cv2.VideoCapture(0)
```
4. 循环读取摄像头数据,每帧捕获视频并转换成Tkinter可显示格式:
```
def show_frame():
_, frame = camera.read()
frame = cv2.flip(frame, 1) # 镜像翻转
image = Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))
imgtk = ImageTk.PhotoImage(image=image)
label.imgtk = imgtk
label.configure(image=imgtk)
label.after(10, show_frame) # 设置10ms的延时,持续更新视频流数据
```
5. 显示视频流:
```
show_frame()
root.mainloop()
```
这样就可以实现在Tkinter窗口上显示摄像头实时视频流了。
阅读全文