[python]代码库
import cv2
import numpy as np
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
cap = cv2.VideoCapture('video.mp4')
while True:
# 读取视频流的下一帧
ret, img = cap.read()
# 如果读取视频成功,则进行人脸检测
if ret == True:
# 转换图像为灰度图像,Haar Cascade 检测器需要灰度图像
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('image', img)
# 如果是视频,则按 q 键退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放视频流和摄像头
cap.release()
# 关闭所有窗口
cv2.destroyAllWindows()