接上篇文章,得到的视频数据,需要前期处理,用于机器学习。功能目的:将视频数据去除画面中无人脸的帧,再另存为:
实现逻辑:通过opencv将视频流导入,取得每一帧进行人脸检测,if有人脸则将此帧数据存入:
#----------------------------------截取有人脸的视频——————————————————————————————
# -*- coding: utf-8 -*-
# import openCV的库
import cv2
import os, math, operator
from PIL import Image
from functools import reduce
# 读取输入视频流
video = cv2.VideoCapture("D:\\a000\\00NBD_data\\download\\s00001\\video\\s00001_001_00001.mp4")
# 获取视频的帧率和尺寸
fps = video.get(cv2.CAP_PROP_FPS)
width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))
print(fps)
#####################################################################
# 创建输出VideoWriter对象以保存提取的帧为新的视频文件
output_video = cv2.VideoWriter(
'img/video2.mp4', cv2.VideoWriter_fourcc(*'mp4v'), fps, (width, height))
# 告诉OpenCV使用人脸识别分类器(cv2.data.haarcascades可以用作数据文件夹的快捷方式)
classfier = c