python tkinter 人脸识别
时间: 2023-11-04 16:57:17 浏览: 114
毕业设计,课程设计-基于python+opencv+tensorflow+tkinter实现人脸识别软件
对于人脸识别的应用,你可以使用 OpenCV 和 face_recognition 库来实现。Tkinter 是 Python 的一个 GUI 库,可以用来创建用户界面。下面是一个使用 Tkinter 和人脸识别库实现的简单例子:
```python
import tkinter as tk
from PIL import ImageTk, Image
import cv2
import face_recognition
# 初始化 Tkinter 窗口
window = tk.Tk()
window.title("人脸识别")
window.geometry("800x600")
# 创建一个标签用于显示摄像头捕捉的图像
label = tk.Label(window)
label.pack()
# 打开摄像头
cap = cv2.VideoCapture(0)
def face_recognition():
# 读取摄像头捕捉的图像
ret, frame = cap.read()
# 将图像从 BGR 转换为 RGB
rgb_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
# 检测图像中的人脸
face_locations = face_recognition.face_locations(rgb_frame)
# 在图像上标记出人脸位置
for (top, right, bottom, left) in face_locations:
cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2)
# 将 OpenCV 图像转换为 PIL 图像
img = Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))
# 将 PIL 图像转换为 Tkinter 可用的图像格式
img_tk = ImageTk.PhotoImage(image=img)
# 更新标签中的图像
label.imgtk = img_tk
label.configure(image=img_tk)
# 循环调用人脸识别函数
window.after(10, face_recognition)
# 开始人脸识别
face_recognition()
# 运行 Tkinter 主循环
window.mainloop()
```
上述代码通过使用 Tkinter 创建一个窗口,然后使用 OpenCV 打开摄像头,捕捉图像,并使用 face_recognition 库检测人脸位置并在图像上标记出来。然后将标记后的图像显示在窗口中。
阅读全文