当前位置: 首页 > news >正文

【P14 3-6 】OpenCV Python——视频加载、摄像头调用、视频基本信息获取(宽、高、帧率、总帧数),视频保存在指定位置

文章目录

  • 1 读取本地视频
    • 1.1 绝对路径 6种方式
    • 1.2 相对路径 4种方式
    • 1.3 读取本地视频
  • 2 视频基本信息
  • 3 调用摄像头 并将视频保存在指定位置

P14 3-6

1 读取本地视频

现在要读取本地视频“video.mp4”,

视频文件“video.mp4”和playVideo.py脚本文件,都在同一个目录E:\\Test_py\\opencv_python\\基本操作\\下面。

在这里插入图片描述

1.1 绝对路径 6种方式

#cap=cv2.VideoCapture("E:\\Test_py\\opencv_python\\基本操作\\video.mp4")
#cap=cv2.VideoCapture('E:\\Test_py\\opencv_python\\基本操作\\video.mp4')#cap=cv2.VideoCapture("E://Test_py//opencv_python//基本操作//video.mp4")
#cap=cv2.VideoCapture('E://Test_py//opencv_python//基本操作//video.mp4')#cap=cv2.VideoCapture("E:/Test_py/opencv_python/基本操作/video.mp4")
cap=cv2.VideoCapture('E:/Test_py/opencv_python/基本操作/video.mp4')

1.2 相对路径 4种方式

#cap=cv2.VideoCapture('video.mp4')
#cap=cv2.VideoCapture('./video.mp4')
#cap=cv2.VideoCapture('.//video.mp4')
cap=cv2.VideoCapture('.\\video.mp4')

1.3 读取本地视频

import cv2
from cv2 import WINDOW_NORMAL
import numpy as np#cv2.namedWindow('video',WINDOW_NORMAL)cap=cv2.VideoCapture('video.mp4')while True:ret,frame=cap.read()cv2.imshow('video',frame)key=cv2.waitKey(20)#当按下q键,退出视频,qASCII值=113,Q=81,还可以写成ord('q')#if(key & 0xff ==ord('q')):if key in (113, 81): breakcv2.destroyWindow()

在这里插入图片描述

2 视频基本信息


if(cap.read()):w=cap.get(CAP_PROP_FRAME_WIDTH)h=cap.get(CAP_PROP_FRAME_HEIGHT)fps=cap.get(CAP_PROP_FPS)count=cap.get(CAP_PROP_FRAME_COUNT)print('视频中图像宽度:%d' %(w))print('视频中图像高度:%d' %(w))print('视频的帧率:%d' %(fps))print('视频总帧数:%d' %(count))

在这里插入图片描述

3 调用摄像头 并将视频保存在指定位置

import cv2#创建VideoWriter为写多媒体文件
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
vw = cv2.VideoWriter('./out.mp4', fourcc, 25, (1280, 720))#创建窗口
cv2.namedWindow('video', cv2.WINDOW_NORMAL)
cv2.resizeWindow('video', 640, 360)#获取视频设备/从视频文件中读取视频帧
cap = cv2.VideoCapture(0)#判断摄像头是否为打开关态
while cap.isOpened():#从摄像头读视频帧ret, frame = cap.read()if ret == True:#将视频帧在窗口中显示cv2.imshow('video', frame)#重新将窗口设备为指定大小cv2.resizeWindow('video', 640, 360)#写数据到多媒体文件vw.write(frame)#等待键盘事件,如果为q,退出key = cv2.waitKey(1)if(key & 0xFF == ord('q')):breakelse:break#释放VideoCapture
cap.release()#释放VideoWriter
vw.release()#vw.release()
cv2.destroyAllWindows()

在这里插入图片描述

http://www.dtcms.com/a/335358.html

相关文章:

  • RH134 访问网络附加存储知识点
  • 解密红外温度芯片的“工作环境温度” 范围
  • 论文推荐|迁移学习+多模态特征融合
  • 存储、硬盘、文件系统、 IO相关常识总结
  • CPP多线程1:C++11的std::thread
  • 再发一篇博客
  • 10.从开始写LINUX内核——时钟中断
  • 从零开始构建在线语言翻译网站:完整开发指南
  • 批次防混的“电子锁”:浪智WMS系统 如何用绑定技术终结出入库乱局
  • 深入理解 Python 元类中的 __prepare__ 方法:掌控类属性定义顺序的艺术
  • 【Html网页模板】赛博朋克数据分析大屏网页
  • 聊聊智慧这个东西之三:从食物的毒性、偏性聊起
  • 一种采用双PID串级控制的双轮自平衡车的研制-论文复现与分析
  • 使用影刀RPA实现快递信息抓取
  • XSS攻击:从原理入门到实战精通详解
  • Python代码规范与静态检查(ruff/black/mypy + pyproject.toml + Makefile)自动化工具链介绍
  • 8.从零开始写LINUX内核——初始化中断控制芯片
  • 实时计算 记录
  • 小杨的H字矩阵-洛谷B3924 [GESP202312 二级]
  • Python环境下载安装、以及环境配置教程(Windows版)
  • Vue组件基础解析
  • B+树索引分析:单表最大存储记录数
  • AI搜索:大模型商业落地的“第一束光”,照见了什么?
  • 车灯的技术和未来方向
  • Python列表与元组:数据存储的艺术
  • 【科研绘图系列】R语言在DOM再矿化数据分析与可视化中的应用
  • 力扣(接雨水)——基于最高柱分割的双指针
  • LLaVA
  • 胶质母细胞瘤对化疗的敏感性由磷脂酰肌醇3-激酶β选择性调控
  • MySQL 的 DDL / DML / DQL / DCL 做一次系统梳理:概念区别→常用语法→特点与注意点→实战小例子→常见面试/坑点速记