基于tkinter和dlib,实现点击按钮后检测图片中的人脸数,并展示加入人脸框后的图片
时间: 2024-04-10 10:33:18 浏览: 91
基于dlib+mysql+opencv+tkinter的人脸识别签到系统源码+项目说明.zip
5星 · 资源好评率100%
下面是一个基于Tkinter和dlib的示例代码,可以实现点击按钮后检测图片中的人脸数,并展示加入人脸框后的图片:
```python
import tkinter as tk
from PIL import Image, ImageTk
import dlib
def detect_faces():
# 从文件加载图像
image = dlib.load_rgb_image("image.jpg")
# 初始化人脸检测器
detector = dlib.get_frontal_face_detector()
# 使用人脸检测器检测人脸
faces = detector(image)
# 在图像上绘制人脸框
for face in faces:
left = face.left()
top = face.top()
right = face.right()
bottom = face.bottom()
# 绘制矩形框
dlib.rectangle(image, left, top, right, bottom)
# 将图像转换为Tkinter可用的格式
image = Image.fromarray(image)
# 在界面上展示加入人脸框后的图像
photo = ImageTk.PhotoImage(image)
label.config(image=photo)
label.image = photo
# 显示人脸数
num_faces = len(faces)
result_label.config(text=f"人脸数:{num_faces}")
# 创建Tkinter窗口
window = tk.Tk()
# 创建按钮
button = tk.Button(window, text="检测人脸", command=detect_faces)
button.pack()
# 创建用于展示图片的Label
label = tk.Label(window)
label.pack()
# 创建用于展示人脸数的Label
result_label = tk.Label(window)
result_label.pack()
# 运行Tkinter主循环
window.mainloop()
```
在上述代码中,你需要将`"image.jpg"`替换为你要处理的图片的路径和文件名。点击按钮后,代码将使用dlib进行人脸检测,并在图像上绘制人脸框。同时,通过Tkinter展示加入人脸框后的图像,并在界面上显示人脸数。
阅读全文