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();
相关推荐
速易达网络4 分钟前
Python + Tkinter 实现基于 TCP/IP 的局域网聊天工具
python·信息与通信
Htojk5 分钟前
电视 / 电台新闻监听平台:端到端流程技术调研
数据分析·实时音视频
多多鼠5 分钟前
System Prompt 的“版本漂移”问题:从变更管理到 A/B 测试体系
开发语言·网络·人工智能·python·langchain
昔我往昔11 分钟前
pytest日志问题排查记录
python·pytest
Python自动化直播20 分钟前
用 Python 爬虫给 AI 直播间做数据反馈机制
人工智能·python·ai·直播
努力学习的代码小白1 小时前
源码学习04
python
Ray Wang1 小时前
Context上下文工程
python·学习·ai编程
梦影_2 小时前
Langchain简单快速上手教程(五)——聊天模型之流式传输
java·数据库·人工智能·python·langchain
ai2work2 小时前
17 · composer 进阶
python
L@ncor2 小时前
第二章 智能体发展史 · 学习笔记
人工智能·python