简介:基于Python语言OpenCV模块的人脸识别小项目
基于Python语言OpenCV模块的人脸识别小项目
一、引言
人脸识别技术已经逐渐渗透到我们生活的各个方面,从手机解锁、支付验证到门禁系统等,都离不开这项技术。Python作为一种简单易学、功能强大的编程语言,结合OpenCV(Open Source Computer Vision Library)模块,可以轻松实现人脸识别功能。本文将介绍一个基于Python语言和OpenCV模块的人脸识别小项目。
二、项目准备
pip install opencv-python
import cv2
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
这段代码将读取名为“face_image.jpg”的图片,并将其转换为灰度图像。然后,使用detectMultiScale方法检测图像中的人脸。该方法返回一个包含人脸位置的矩形列表。你可以使用以下代码绘制矩形框来标出检测到的人脸:
img = cv2.imread('face_image.jpg')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),(255,0,0),2)cv2.imshow('img',img)cv2.waitKey(0)cv2.destroyAllWindows()
face_recognizer = cv2.face.LBPHFaceRecognizer_create() # 使用Local Binary Patterns Histograms方法进行人脸识别face_recognizer.read('trainer_result.xml') # 加载训练好的模型文件(通常是XML格式)img = cv2.imread('unknown_image.jpg') # 读取待识别的图片文件gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 将图片转换为灰度图像faces = face_recognizer.predict(gray) # 使用模型进行人脸识别,返回一个包含识别结果(即身份ID)的元组列表(每个元组包含一个身份ID和对应的置信度)