【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.pswp.cn/web/93443.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/93443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【DL学习笔记】常用数据集总结

一、如何找数据集 paperswithcode,但好像没了 AutoDL Roboflow Kaggle Hungging Face 百度飞浆PP AIStudio 二、目标检测数据集格式 常用数据集坐标格式 MSCOCO : 坐标格式(x,y,w,h&#xff…

19.3 Transformers量化模型极速加载指南:4倍推理加速+75%显存节省实战

Transformers量化模型极速加载指南:4倍推理加速+75%显存节省实战 实战项目:模型量化 Transformers 兼容性配置 量化模型加载核心配置逻辑 #mermaid-svg-rDjfMigtxckLYWp3 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#merm…

Android 终端接入 GB28181 国标视频平台的完整解决方案解析

1. 引言:让 Android 终端无缝融入国标视频网络在公安、交通、应急、工业、教育等领域,GB/T 28181 国标协议早已成为视频监控与指挥调度的事实标准。传统国标视频网络通常由固定部署的 IPC 摄像机、NVR、视频管理平台构成,设备形态单一。随着一…

Docker目录的迁移

# 迁移 docker 目录 (无论容器与镜像占用空间大小,哪怕只占用1G,也需用此方式,否则可能迁移不成功)service docker stopcd /var/lib/docker# 一个一个复制除 overlay2 外的其他所有文件夹cp -R builder /home/docker/l…

IOS APP 前端存储

UserDefaults优点简单易用提供简单的键值对存储接口无需复杂配置,开箱即用适合存储少量简单数据轻量级专门为存储小量数据设计内存占用小性能开销低自动持久化数据自动保存到磁盘应用重启后数据仍然可用通过synchronize()方法可以强制立即写入(iOS 12已自…

在前端js中使用jsPDF或react-to-pdf生成pdf文件时,不使用默认下载,而是存储到服务器

开源地址: https://github.com/ivmarcos/react-to-pdf 主要就是这个方法,有三种可选: 默认是save,也就是会自动触发下载的方法,open方法是默认会打开一个pdf预览的tab页面,build方法就是在调用的函数gener…

会议征稿!IOP出版|第二届人工智能、光电子学与光学技术国际研讨会(AIOT2025)

往届已EI检索,欢迎投稿! AIOT2024会后两个月实现见刊! AIOT2025已通过IOP-JPCS出版申请,独立JPCS出版 AIOT2025已上线西安文理学院官网: 征文通知|第二届人工智能、光电子学与光学技术国际…

CPP多线程2:多线程竞争与死锁问题

在多线程编程中,多个线程协同工作能显著提升程序效率,但当它们需要共享和操作同一资源时,潜在的问题也随之而来;线程间的执行顺序不确定性可能导致资源竞争,可能引发死锁,让程序陷入停滞。 多线程竞争问题示…

全国产飞腾d2000+复旦微690t信号处理模块

UD VPX-404是基于高速模拟/数字采集回放、FPGA信号实时处理、CPU主控、高速SSD实时存储架构开发的一款高度集成的信号处理组合模块,采用6U VPX架构,模块装上外壳即为独立整机,方便用户二次开发。 UD VPX-404模块的国产率可达到100%&#xff0…

物联网 (IoT) 的顶级硬件平台

物联网 (IoT) 的顶级硬件平台IoT(物联网)不再是一个流行词。随着每天出现几个鼓舞人心的用例,多家公司现在正在探索如何利用该技术实现业务增长。无论实施何种其他技术,基于物联网的新设备正迅速成为一项重…

TCP传输层协议(4)

TCP应用层协议(4) 流量控制 接收端处理数据的速度是有限的. 如果发送端发的太快, 导致接收端的缓冲区被打满, 这个时候如果发送端继续发送, 就会造成丢包, 继而引起丢包重传等等一系列连锁反应. 因此 TCP 支持根据接收端的处理能力, 来决定发送端的发送速…

双向SSL认证之Apache实战配置

防御未授权访问,为企业级应用构筑双重身份验证防线 本文是关于Apache配置双向SSL认证的深度技术指南,包含全流程操作、调试技巧及企业级解决方案,适用于运维工程师和安全管理员。 1.为什么需要双向认证 ? 核心价值 &#x1f51…

JavaScript 实用工具方法小全

1. 精确获取小数位数/*** 获取数字的小数位数(支持科学计数法)* param {number|string} num - 要检查的数字,可以是数字或字符串形式* returns {number} 返回小数部分的位数* * 实现原理:* 1. 处理科学计数法(如1.23e-…

【易错题】C语言

今日遇到的易错题 #include <stdio.h> int i;//全局变量默认初始化是0 int main() {i--;//-1if (i > sizeof(i)){printf(">\n");}else{printf("<\n");}return 0; }易错点&#xff1a;sizeof的返回值类型实际为无符号整形&#xff0c;因此编…

第七十五章:AI的“思维操控师”:Prompt变动对潜在空间(Latent Space)的影响可视化——看懂AI的“微言大义”!

Prompt变动对潜在空间影响前言&#xff1a;AI的“思维操控师”——Prompt变动对潜在空间的影响可视化&#xff01;第一章&#xff1a;痛点直击——Prompt“难伺候”&#xff1f;改一个字就“面目全非”&#xff01;第二章&#xff1a;AI的“思维圣地”&#xff1a;潜在空间&…

【计算机视觉与深度学习实战】03基于Canny、Sobel和Laplacian算子的边缘检测系统设计与实现

第一章 引言 边缘检测作为计算机视觉和图像处理领域的核心技术之一,在现代数字图像分析中占据着举足轻重的地位。边缘是图像中亮度变化剧烈的区域,通常对应着物体的轮廓、表面方向的不连续性、材质变化或照明条件的改变。准确而高效的边缘检测不仅是图像分割、特征提取、模式…

【大语言模型 02】多头注意力深度剖析:为什么需要多个头

多头注意力深度剖析&#xff1a;为什么需要多个头 - 解密Transformer的核心升级 关键词&#xff1a;多头注意力、Multi-Head Attention、注意力头、并行计算、特征学习、Transformer架构、深度学习 摘要&#xff1a;在掌握了Self-Attention基础后&#xff0c;本文深入探讨多头注…

Python Condition对象wait方法使用与修复

在 Python 中&#xff0c;Condition 对象用于线程同步&#xff0c;其 wait() 方法用于释放锁并阻塞线程&#xff0c;直到被其他线程唤醒。使用不当可能导致死锁、虚假唤醒或逻辑错误。以下是常见问题及修复方案&#xff1a;常见问题与修复方案1. 未检查条件&#xff08;虚假唤醒…

嵌入式硬件——ARM

一、ARM体系结构程序编译的过程&#xff1a;预处理&#xff08;.c-.i&#xff09;&#xff1a;宏替换&#xff0c;头文件展开&#xff0c;去掉注释&#xff0c;特殊符号的处理编译&#xff08;.i-.s&#xff09;&#xff1a;C语言转换成汇编语言汇编&#xff08;.s-.o&#xff…

Flutter 以模块化方案 适配 HarmonyOS 的实现方法

Flutter 以模块化方案 适配 HarmonyOS 的实现方法 Flutter的SDK&#xff1a; https://gitcode.com/openharmony-tpc/flutter_flutter 分支Tag&#xff1a;3.27.5-ohos-0.1.0-beta DevecoStudio&#xff1a;DevEco Studio 5.1.1 Release HarmonyOS版本&#xff1a;API18 本文使…