欢迎访问宙启技术站
智能推送

使用Python编写的简单人脸识别程序

发布时间:2023-12-04 15:05:41

Python是一种广泛使用的编程语言,可以用于开发各种应用程序,包括人脸识别。人脸识别是一项重要的计算机视觉任务,它可以识别和验证人脸的身份。

在Python中,我们通常使用OpenCV库来实现人脸识别功能。OpenCV是一个开源计算机视觉库,它提供了各种图像处理函数和算法,包括人脸识别。

首先,我们需要在Python中安装OpenCV库。可以使用pip命令来安装:

pip install opencv-python

安装完成后,我们可以使用以下代码来实现简单的人脸识别程序。

import cv2

# 加载人脸分类器
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

# 加载图像
img = cv2.imread('img.jpg')

# 将图像转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 检测人脸
faces = face_cascade.detectMultiScale(gray, 1.1, 4)

# 在图像上绘制矩形框
for (x, y, w, h) in faces:
    cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 3)

# 显示结果图像
cv2.imshow('img', img)
cv2.waitKey()

上述代码中,我们首先导入了cv2库,并加载了人脸分类器(haarcascade_frontalface_default.xml)。然后,我们使用cv2.imread函数加载图像,并将其转换为灰度图像,便于人脸识别。接下来,我们使用detectMultiScale函数检测图像中的人脸,并返回每个人脸的位置和大小。最后,我们使用cv2.rectangle函数在图像上绘制矩形框表示检测到的人脸,并使用cv2.imshow函数显示结果图像。

下面是一个使用示例:

import cv2

# 加载人脸分类器
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

# 打开摄像头
cap = cv2.VideoCapture(0)

while True:
    # 读取摄像头图像
    ret, img = cap.read()

    # 将图像转换为灰度图像
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    # 检测人脸
    faces = face_cascade.detectMultiScale(gray, 1.1, 4)

    # 在图像上绘制矩形框
    for (x, y, w, h) in faces:
        cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 3)

    # 显示结果图像
    cv2.imshow('img', img)

    # 按下ESC键退出循环
    if cv2.waitKey(1) == 27:
        break

# 关闭摄像头
cap.release()

# 关闭窗口
cv2.destroyAllWindows()

上述代码中,我们添加了一个循环来持续从摄像头中读取图像,并实时识别人脸。按下ESC键可以退出循环,并关闭摄像头。