将 OpenCV 与 Tkinter 结合使用

tkinterpythongui-programming更新于 2025/6/18 0:12:17

Open CV 是一个 Python 库,用于处理计算机视觉和其他人造物品。Open CV 具有内置函数和方法,可用于在人工智能和机器学习中使用计算机视觉。Open CV 的一些示例包括:人脸检测、物体检测、X 射线和其他工业用途。

使用 Tkinter 库,我们可以创建一个交互式应用程序,该应用程序使用 OpenCV 作为应用程序的基本部分。

要创建应用程序,您需要在本地计算机中安装 OpenCV,并确保已预先安装 Python Pillow 包。您可以通过在笔记本中键入以下命令来安装这些包。

pip install open-cv
pip install Pillow

安装完成后,我们可以开始创建应用程序的结构和 GUI。我们的应用程序的基本功能是使用 OpenCV 打开网络摄像头(如果可能)。因此,为了显示每个捕获的帧,我们可以使用 Python Pillow (PIL) 包将帧转换为图像。现在可以在标签小部件中使用图像,该小部件在窗口中迭代显示每个捕获的帧。

示例

# 导入所需的库
from tkinter import *
from PIL import Image, ImageTk
import cv2

# 创建 TKinter 窗口或框架的实例
win= Tk()

# 设置窗口的大小
win.geometry("700x350")# 创建一个标签来捕获视频帧
label =Label(win)
label.grid(row=0, column=0)
cap= cv2.VideoCapture(0)

# 定义函数以显示帧
   def show_frames():
      # 获取最新帧并转换为图像
      cv2image= cv2.cvtColor(cap.read()[1],cv2.COLOR_BGR2RGB)
      img = Image.fromarray(cv2image)

      # 将图像转换为照片图像
      imgtk = ImageTk.PhotoImage(image = img)
      label.imgtk = imgtk
      label.configure(image=imgtk)

# 间隔一段时间后重复以连续捕获
label.after(20, show_frames)

show_frames()
win.mainloop()

输出

当我们执行上述代码时,它将显示一个窗口,打开用户相机以捕获帧。


相关文章


有用资源