opencv-python学习之路之摄像头实时人脸检测

摄像头实时人脸检测

  • 摄像头检测的话与视频检测类似,都是读取每一帧用detectMultiScale()函数做检测
  • 要点
    • 用到cv2.VideoCapture()函数来控制摄像头工作

代码及注释如下:

import cv2

camera = cv2.VideoCapture(0)  # 摄像头拍摄的值赋给camera变量
face_cascade = cv2.CascadeClassifier('cascades/haarcascade_frontalface_default.xml')  # 加载人脸特征库
face_cascade.load('F:\opencv\opencv3.3\opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml')  # 加载分类器文档位置

while (True):
    ret, img = camera.read()  # 读取一帧的图像
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 转化为灰度图像

    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(5, 5), flags=0)  # 检测人脸
    print('Found {0} faces!'.format(len(faces)))
    for (x, y, w, h) in faces:
        cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)  # 用矩形圈出人脸

    cv2.imshow('camera', img)  # 创建’camera‘窗口并在其中显示img的值
    if cv2.waitKey(1) & 0xFF == 27:  # 按esc退出(27为esc的'ascll'码)
        break

camera.release()  # 释放摄像头
cv2.destroyAllWindows()  # 释放窗口

显示结果

这里写图片描述
这里写图片描述
ps:画功很烂,将就着看哈

猜你喜欢

转载自blog.csdn.net/eon_sos/article/details/81814506