Python数据分析(OpenCV视频处理)

处理视频我们引入的还是numpy 和 OpenCV 的包

引入方式如下:

import numpy as np

import cv2

我们使用OpenCV来加载本地视频,参数就是你视频的路径就可以

#加载视频

cap = cv2.VideoCapture('./1.mp4')

下面我们进行读取视频

#读取视频

flag,frame = cap.read()

读取视频的方法会返回两结果,flag表示是否读完 frame是读取的图像

我们可以获取图像的宽高等等

#获取帧数

cap.get(cv2.CAP_PROP_FPS)

#获取宽度

cap.get(cv2.CAP_PROP_FRAME_WIDTH)

下面是两个例子

第一个读取本地视频,并识别视频中的人脸,这里获取人脸的特征数据在上篇文章中已说明,这里不多说

python 复制代码
#读取视频
cap = cv2.VideoCapture('./1.mp4')
#添加人脸特征
detector = cv2.CascadeClassifier('./haarcascade_frontalface_default.xml')
#读取视频并进行人脸识别
while cap.isOpened():
    flag,frame = cap.read()
    gray = cv2.cvtColor(frame,code=cv2.COLOR_BGR2GRAY)
    face_zone = detector.detectMultiScale(gray,scaleFactor=1.2,minNeighbors=5)
    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)
    if flag == False:
        break;
    cv2.imshow('ll',frame)
    if ord('q') == cv2.waitKey(81):
        break
cv2.destroyAllWindows()
cap.release()

第二个例子, 我们调用本地摄像头,识别人脸,并将视频储存到本地

python 复制代码
#cv2 打开本地摄像头  识别人脸 并保存视频
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('./my.mp4',cv2.VideoWriter_fourcc('M','P','4','v'),24,(w,h))
detector = cv2.CascadeClassifier('./haarcascade_frontalface_default.xml')
while cap.isOpened():
    falg,frame = cap.read()
    if falg == False:
        break;
    gray = cv2.cvtColor(frame,code=cv2.COLOR_BGR2GRAY)
    face_zone = detector.detectMultiScale(gray,scaleFactor=1.2,minNeighbors=5)
    for x,y,w,h in face_zone:
        cv2.circle(frame,circle=(x+w//2,y+h//2),radius=w//2,color =[0,0,255],thickness=2)
    videoWriter.write(frame)
    if falg == False:
        break;
    cv2.imshow('ll',frame)
    if ord('q') == cv2.waitKey(20):
        break;
cv2.destroyAllWindows();
cap.release();
videoWriter.release();
相关推荐
2401_8288906433 分钟前
实现扩散模型 Stable Diffusion - MNIST 数据集
人工智能·python·深度学习·stable diffusion
jz_ddk1 小时前
[指南] Python循环语句完全指南
开发语言·python·continue·循环·for·while·break
Evand J1 小时前
【Python代码例程】长短期记忆网络(LSTM)和无迹卡尔曼滤波(UKF)的结合,处理复杂非线性系统和时间序列数据
python·lstm·滤波
workflower2 小时前
易用性和人性化需求
java·python·测试用例·需求分析·big data·软件需求
嚯嚯歪2 小时前
攻克腾讯 TCaptcha 滑块验证码:纯 HTTP 协议逆向实战
爬虫·python·逆向·验证码识别
じ☆冷颜〃2 小时前
随机微分层论:统一代数、拓扑与分析框架下的SPDE论述
笔记·python·学习·线性代数·拓扑学
程序员敲代码吗3 小时前
提升Python编程效率的五大特性
开发语言·python
List<String> error_P3 小时前
Python蓝桥杯常考知识点-模拟
开发语言·python·蓝桥杯
比奇堡鱼贩4 小时前
python第五次作业
开发语言·前端·python
Flying pigs~~4 小时前
Pandas绘图和Seaborn绘图
数据挖掘·数据分析·pandas·seaborn·python可视化