opencv-python学习之路之视频检测

视频中的人脸检测

在学习并实现了图片中人脸的检测后对在pycharm下的opencv有了一些了解,今天研究了一下视频中的人脸检测,道理是一样的,只不过要注意以下几点:
1.调用cv2.VideoCapture()函数来读取视频
2.调用camera.read()函数来读取每一帧(这里要有一个死循环)
3.做一个窗口退出的接口

代码及注释如下:

import cv2


face_cascade = cv2.CascadeClassifier('cascades/haarcascade_frontalface_default.xml')  # 加载人脸特征库
face_cascade.load('F:\opencv\opencv3.3\opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml')  # 加载分类器文档位置
camera = cv2.VideoCapture('cc.avi')    # 读取视频文件


while(True):
    ret, img = camera.read()  # 从视频中获取布尔值以及帧本身
    if ret == True:  # 根据布尔值判断是否读取帧
        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    else:
        break
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5)  # 人脸检测,具体参数见上一篇文章
    for (x, y, w, h) in faces:  # x, y为坐标  w, h为长和宽
        cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)  # 用矩形来显示检测出的人脸
        cv2.imshow("camera", img)  # 创建’camera‘窗口并在其中显示img的值
    if cv2.waitKey(1000//50) & 0xff == 27:  # 按esc退出(27为esc的'ascll'码)
        break


camera.release()  ldestroy
cv2.destroyA
cv2.destroyAlWindows()  # 释放窗口

猜你喜欢

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