文章目录
思路和核心代码
思路如下:
- 首先需要一个训练好的人脸和眼睛特征数据库,用于识别人脸和眼睛
- 识别出人脸和眼睛之后,返回所在的区域(一般是矩形)
- 把所在区域用一个矩形框框起来
核心代码如下
# 加载人脸识别数据库,生成一个对象
faceCascade = cv2.CascadeClassifier(faceCascadePath)
# 识别出人脸的范围,返回一个矩形
faceRects = faceCascade.detectMultiScale(gray,scaleFactor=1.1,\
minNeighbors=5,minSize=(30,30),\
flags = cv2.CASCADE_SCALE_IMAGE)
# 加载视频
video = cv2.VideoCapture(videoPath)
# 读取视频
(grabbed,raw_frame) = video.read()
# 图像缩放
frame = cv2.resize(raw_frame,dim,interpolation=cv2.INTER_AREA)
# 识别出眼睛的范围,返回一个矩形
eyeRects = eyeCascade.detectMultiScale(faceROI,\
scaleFactor = 1.1, \
minNeighbors = 10, \
minSize = (20, 20),\
flags = cv2.CASCADE_SCALE_IMAGE)
# 释放视频资源
video.release()
# 关闭所有窗口
cv2.destroyAllWindows()
人脸识别和眼睛识别的特征数据库链接:点击下载数据库文件
识别图像中的人脸
首先进行人脸识别
import cv2