Python人脸识别(2)——人脸检测(摄像头动态)

前言

  今天开始做摄像头动态人脸检测。:不是人脸识别。
在上一篇静态照片人脸检测博客的基础上稍作修改就可以了。大部分代码还是相同的只不过,将照片改为每一帧照片而已。

代码实现

import cv2
face_engine = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_frontalface_default.xml')   # 加载级联文件
eye_engine = cv2.CascadeClassifier(cv2.data.haarcascades+'haarcascade_eye.xml')   # 加载级联文件
cap = cv2.VideoCapture(0)  # 打开笔记本摄像头
while(True):
    check,frame = cap.read()  # 读入每帧图片
    gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)  # 灰度化处理
    face = face_engine.detectMultiScale(gray,scaleFactor=1.25,minNeighbors=6)  # 参数根据实际效果自行调整
    for (x,y,w,h)in face:
        img = cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)  # 脸部框图绘制
        face_area = img[y:y+h,x:x+w]  # 将眼部检测区域范围缩小,减少检测时间
        eye = eye_engine.detectMultiScale(face_area,1.25,10)
        for (ex,ey,ew,eh) in eye:
            cv2.rectangle(face_area,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)  # 眼部框图绘制
    cv2.imshow("frame", frame)
    if cv2.waitKey(1) == ord('q'):  # 键盘键入q退出
        break
cap.release()
cv2.destroyAllWindows()

在这里就不做效果展示了,只要环境搭建好,这几行代码基本就可以实现摄像头的人脸检测和人眼检测。相对比较简单。

你可能感兴趣的:(python学习)