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();
相关推荐
Aision_3 小时前
从工具调用到 MCP、Skill完整学习记录
java·python·gpt·学习·langchain·prompt·agi
2301_809204708 小时前
JavaScript中严格模式use-strict对引擎解析的辅助.txt
jvm·数据库·python
zjy277778 小时前
mysql如何选择合适的索引类型_mysql索引设计实战
jvm·数据库·python
Aaswk8 小时前
Java Lambda 表达式与流处理
java·开发语言·python
万邦科技Lafite9 小时前
京东item_get接口实战案例:实时商品价格监控全流程解析
java·开发语言·数据库·python·开放api·淘宝开放平台
Cyber4K10 小时前
【Python专项】进阶语法-系统资源监控与数据采集(1)
开发语言·python·php
苍煜11 小时前
Java开发IO零基础吃透:BIO、NIO、同步异步、阻塞非阻塞
java·python·nio
AllData公司负责人12 小时前
通过Postgresql同步到Doris,全视角演示AllData数据中台核心功能效果,涵盖:数据入湖仓,数据同步,数据处理,数据服务,BI可视化驾驶舱
java·大数据·数据库·数据仓库·人工智能·python·postgresql
Flittly13 小时前
【LangGraph新手村系列】(5)时间旅行:浏览历史、分叉时间线与修改过去
python·langchain
2301_7820404513 小时前
CSS Flex布局中如何实现导航栏与Logo的左右分布_利用justify-content- space-between
jvm·数据库·python