python实现一个有可视化界面的人脸检测程序,可是识别并框出人脸和人,可视化界面拥有输入窗口和显示处理后图片的窗口
时间: 2024-02-25 07:53:57 浏览: 84
人脸识别程序,运用python软件
5星 · 资源好评率100%
好的,您可以使用Python中的OpenCV库来实现人脸检测。以下是一个简单的示例代码,可以实现您所需的功能:
```python
import cv2
from tkinter import *
from PIL import Image, ImageTk
# 创建人脸检测器
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# 创建窗口
window = Tk()
window.title("人脸检测程序")
# 创建输入框
input_frame = Frame(window)
input_frame.pack(side=TOP)
input_label = Label(input_frame, text="输入图片路径:")
input_label.pack(side=LEFT)
input_entry = Entry(input_frame, width=50)
input_entry.pack(side=LEFT)
# 创建显示框
display_frame = Frame(window)
display_frame.pack(side=BOTTOM)
display_label = Label(display_frame)
display_label.pack()
# 定义函数来处理图片并显示
def detect_faces():
# 读取输入图片
img_path = input_entry.get()
img = cv2.imread(img_path)
# 检测人脸
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
# 在图像上绘制矩形框来标记人脸
for (x,y,w,h) in faces:
cv2.rectangle(img, (x,y), (x+w,y+h), (0,0,255), 2)
# 将图像转换为PIL图像并显示
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img = Image.fromarray(img)
img = ImageTk.PhotoImage(img)
display_label.configure(image=img)
display_label.image = img
# 创建按钮
button_frame = Frame(window)
button_frame.pack(side=BOTTOM)
detect_button = Button(button_frame, text="检测人脸", command=detect_faces)
detect_button.pack()
# 运行窗口
window.mainloop()
```
在这个示例代码中,我们使用了OpenCV库来进行人脸检测,并使用Tkinter库来创建可视化界面。我们创建了一个输入框来让用户输入图片路径,一个显示框来显示处理后的图片,并创建了一个按钮来触发人脸检测。当用户点击检测按钮时,程序会读取输入的图片,对其进行人脸检测,并在图像上绘制矩形框来标记人脸,最后将处理后的图像显示在显示框中。
注意,在运行代码之前,您需要先下载并安装OpenCV库,并下载haarcascade_frontalface_default.xml文件,该文件包含了人脸检测器的训练数据。
阅读全文