用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - python代码库

识别视频里的人脸

2022-12-10 作者: Python自学举报

[python]代码库

# coding=utf-8
import cv2

# 如果是对视频进行检测,那么替换下面语句
cap = cv2.VideoCapture('a.avi')

# 通过摄像头检测自己的人脸
# cap = cv2.VideoCapture(0)

# 获得摄像头帧大小
w = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) + 1
h = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) + 1

# 保存文件的格式
videoWriter = cv2.VideoWriter('b.avi', cv2.VideoWriter_fourcc('M', 'P', '4', '2'), 24, (w, h))

# 自适应窗口大小
cv2.namedWindow('video', cv2.WINDOW_NORMAL | cv2.WINDOW_KEEPRATIO)

# 查看视频一秒多少帧 1000/20=50
# print(cap.get(propId=cv2.CAP_PROP_FPS))
# 一共多少帧 2701.0
# print(cap.get(propId=cv2.CAP_PROP_FRAME_COUNT))

# 人脸数据,级联分类器,给人脸特征数据,返回可以识别人脸的对象
detector = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

while cap.isOpened():
    # 获得每帧数据
    flag, frame = cap.read()
    if flag == False:
        break
    # 转化为灰度图像
    gray = cv2.cvtColor(frame, code=6)
    # 人脸检测获得图像区域
    face_zone = detector.detectMultiScale(gray)
    # 针对人脸区域画图
    for x, y, w, h in face_zone:
        cv2.circle(frame, center=(x + w // 2, y + h // 2), radius=w // 2, color=[0, 0, 255], thickness=2)
    # 写入视频流中
    videoWriter.write(frame)

    if flag == False:
        break

    cv2.imshow('video', frame)
    # 按q退出
    if ord('q') == cv2.waitKey(5):
        break

cv2.destroyAllWindows()
cap.release()
videoWriter.release()


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...