摄像头/视频读取_写入

news2024/11/16 16:58:38

摄像头/视频读取_写入

➢VideoCapture类:

使用 OpenCV 播放视频,几乎与使用它来显示图像一样容易。播放视频时只需要处理的新问题就是如何循环地顺序读取视频中的每一顿,以及如何从枯燥的电影视频的读取中退出该循环操作。具体如例如下:

#encoding:utf8
import cv2

#视频的基本操作   
cap = cv2.VideoCapture('./datas/vedioplay.mp4') #filename
print(cap.isOpened())
count = 0
while True:
    count += 1
    ret, frame = cap.read()
    if not ret:
        break
    if count > 240:
        cap.release()   
    cv2.imshow('frame', frame)
    cv2.waitKey(25)
 cv2.destroyAllWindows()

你的答案

在这里插入图片描述

取帧方法:

 cap = cv2.VideoCapture()
 cap.open('datas/vedioplay.mp4')
 ret, frame = cap.read()

ret是否能取到帧,frame帧图片(ndarray)

VideoCapture类常用函数功能:

cap = cv2.VideoCapture(0)  #device
cap = cv2.VideoCapture('./datas/vedioplay.mp4') #filename
cap = cv2.VideoCapture()
cap.open('datas/vedioplay.mp4')
cap.isOpened()
ret, frame = cap.read()
cap.release()
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)#颜色空间转换

cap = cv2.VideoCapture(0) #device
cap = cv2.VideoCapture(‘./datas/vedioplay.mp4’) #filename
cap = cv2.VideoCapture()
以上为定义视频对象
cap.open(‘datas/vedioplay.mp4’)打开指定视频
cap.isOpened()判断视频文件是否正确
ret, frame = cap.read()读取视频帧图像
grab (一抓取下一帧的视频文件或设备)
get()一返回指定视频类的相关参数信息
cap.release()-关闭视频流文件
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)#颜色空间转换

几点说明:


1)打开的视频可以是本地视频如:
cap = cv2.VideoCapture('./datas/vedioplay.mp4') 
也可以是网络视频:
2) 读取视频一定要加异常判断
A.打开视频失败(各种原因)
B.取失败异常(程序结尾判断)
ex1:
#检查打开是否成功
    if(cap.isOpened()) : 
ex2:
      ret,frame = cap.read()
      if(frame is None): #判断当前frame 是否为空
      if ret==Ealse: #断取顿是否失败
break

在这里插入图片描述

加入简单图像处理效果


while True:
    count += 1
    ret, frame = cap.read()
    if not ret:
        break
    if count > 240:
        cap.release()
    frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)#颜色空间转换
    cv2.imshow('frame', frame)
    cv2.waitKey(25)  
    
cv2.destroyAllWindows()

1)转为灰度模式

在这里插入图片描述

2)颜色空间转换到HSV

在这里插入图片描述

写入视频

cv2.VideoWriter()
注意事项:
1)写入视频前需安装对应的编解码器
2)生成视频是否支持彩色应与构造函数设置一致
3) 生成视频尺寸需与读取视频尺寸一致

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/442440.html

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

相关文章

【计算机架构】如何计算 CPU 动态功耗

📜 本章目录: 0x00 动态功耗(Dynamic Power) 0x01 集成电路成本(Integrated Circuit Cost) 0x02 基准测试(SPEC CPU Benchmark) 0x03 SPEC功率基准测试(SPEC Power B…

vs2022下配置zxing cpp环境

生成zxing 下载zxing,zxing-cpp-master https://github.com/zxing-cpp/zxing-cpp Cmake生成项目,点Generate,把OpenCV_DIR修改了,NameValue没有报红就点Generate。然后点Open Project打开项目。 打开项目后,右击解决…

赋值法写基础解系中解向量

赋值法写基础解系中解向量 (一)背景引入 通常解方程组时,将系数矩阵化为行阶梯型,进而可化为行最简型 (说一嘴:行最简型是指阶梯口元素全是1,该1所在列全其余全为0;广义行阶梯的阶梯…

maven作用讲解---以及怎么配置阿里的maven镜像

目录 Maven介绍 传统的java项目的结构和maven的对比 传统 Maven的项目 如何配置阿里 maven 2. 修改 Maven介绍 传统的java项目的结构和maven的对比 传统 Maven的项目 如何配置阿里 maven (1) 把 D:\program\JavaIDEA 2020.2\plugins\maven\lib\maven3\conf\settings.xml…

DNS服务

DNS服务 使用背景 在日常生活中人们习惯使用域名访问服务器,但机器间互相只认IP地址,域名与IP地址之间是多对一的关系,一个ip地址不一定只对应一个域名,且一个完整域名只可以对应一个ip地址,它们之间的转换工作称为域…

锐捷常用命令

所有交换机和无线控制器开启SSH服务,用户名密码分别为admin、admin1234;密码为明文类型,特权密码为admin 以S5为例: S5(config)#enable service ssh-server S5(config)#username admin password admin123 S5(config)#line vty 0 4 S5(co…

【C++ 十】STL基本概念、STL六大组件、STL容器、STL算法、STL迭代器

STL 的诞生、STL 基本概念、STL 六大组件、STL 容器、STL 算法、STL 迭代器 文章目录 STL 的诞生、STL 基本概念、STL 六大组件、STL 容器、STL 算法、STL 迭代器前言1 STL 的诞生2 STL 基本概念3 STL 六大组件4 STL 中容器、算法、迭代器5 容器算法迭代器初识5.1 vector 存放内…

vue2数据响应式原理(4) 递归侦测对象所有属性,解密vue响应式对象__ob__是干什么的

我们上文写的这个方法 并不能很好的侦测对象所有的属性 或者说 不能比较简介的侦测所有属性 在实际业务中 对象里面套对象 也不是什么很少见的事 例如这样 这种 我们用上一种方法 就很麻烦了 所以 我们需要了解新的方法 要完成完整的属性监听 我们就需要一个工具类 这个类的…

js+css实现简单的弹框动画

效果图 只是一个简单的演示demo,但是可以后面可以优化样式啥的 刚开始元素的display为none,然后,为了给元素展示时添加一个动画,首先要添加样式类名show,让它覆盖display:none,变得可见。然后,添…

Day951.认知负载 -遗留系统现代化实战

认知负载 Hi,我是阿昌,今天学习记录的是关于认知负载的内容。 一、怎样理解认知负载? 作为开发人员,不管是不是工作在遗留系统上,一定面临过来自业务方或项目经理的灵魂拷问: 为什么这个需求这么简单&…

车载网络 - Autosar网络管理 - 跳转状态

四、Autosar网络管理跳转状态 网络模式对应报文状态 Autosar网络管理报文各个状态对应的网络管理报文和应用报文的发送和接收状态。 网络模式 网络管理报文 应用报文 收发类型 发送报文 接收报文 发送报文 接收报文 总线睡眠模式(BSM) No Yes No NA 准备总线睡眠模…

探索Whisper语音识别

问题一:python多版本切换 背景:有了anaconda环境 还有一个c盘的不知道什么东西 我准备下载一个python3.9.9 去官网 然后安装,安装之前一定要把原来的python卸载干净。 3.9.9安装不上,我用3.10 切换的话,就是去环境…

总结828

学习目标: 4月(复习完高数18讲内容,背诵21篇短文,熟词僻义300词基础词) 学习内容: 暴力英语:回环诵读之前的文章,背150个单词,背《冰与火之歌》-守夜人誓词 高等数学&…

《Effective C++》读书笔记(二):构造/析构/赋值运算(条款05~条款12)

目录 1. 条款05:了解C默默编写并调用哪些函数 2. 条款06:若不想使用编译器自动生成的函数,就该明确拒绝 3. 条款07:为多态基类virtual析构函数 4.条款08:别让异常逃离析构函数 5.条款09:绝不在构造和析…

Vue CLI 服务

使用命令 在一个 Vue CLI 项目中,vue/cli-service 安装了一个名为 vue-cli-service 的命令。你可以在 npm scripts 中以 vue-cli-service、或者从终端中以 ./node_modules/.bin/vue-cli-service 访问这个命令。 这是你使用默认 preset 的项目的 package.json&…

2023红明谷杯部分WP

0x00 签到 一直点就能得到flag 0x01 Dreamer 拿到题感觉有点儿懵 先下发靶机看一眼 梦想家CMS,好嘛,我直接一手查找官网 直接一手演示中心碰运气 哎嘿嘿,运气不错进去了,突然想起之前有位大佬写的关于Dreamer CMS的代码审…

【Linux网络设置】

目录 一、查看网络接口信息1.1、查看所有活动的网络接口信息1.2、查看指定网络接口信息 二、查看主机名称2.1、hostname命令2.2、永久设置主机名 三、查看路由表条目route命令 四、查看网络连接情况4.1、netstat命令4.2、ss命令 五、测试网络连接ping命令 6、跟踪数据包tracerr…

CorelDRAW2023最新版本配置及新功能介绍

从简单的线框到令人称叹的水平,使用CorelDRAW Graphics Suite 2023开始您的设计之旅:一套完整的专业图形设计应用程序,用于矢量插图、布局、照片编辑等。CorelDRAW平面设计软件通常也被叫做CDR,CDR广泛应用于排版印刷、矢量图形编…

关于电脑出厂时间查询工具的构思

在做一个单位的计算机盘点、管理的时候,很容易遇见需要知道电脑的采购时间,或者出厂时间。这个信息能够帮助管理人员决定电脑是否该按定期报废制度进行报废或更换。 目前为止,作者接触过的各类电脑,没有看到过哪台电脑有专门的一…

windows系统中安装目标检测平台detectron2

更多内容,欢迎访问老五笔记 detectron2是Facebook研发并开源的目标检测平台,包含了大量业内最具代表性的目标检测、图像分割、关键点检测算法等。Detectron2基于新版的Pytorch进行更新,包含了更大的灵活性与扩展性。​ 笔者将在本文中介绍如…