4.通过Opencv采集摄像头视频数据
VideoCapture() 虚拟采集器,一般设备号从0开始
cap.read() 读取视频帧
返回值有两个,第一个为状态值,读到帧为true
第二个值为视频帧
cap.release() 释放资源
示例程序:
import cv2 #引入CV库
#创建窗口
cv2.namedWindow('video',cv2.WINDOW_NORMAL)
cv2.resizeWindow('video',300,300) #设置窗口大小#获取视频设备
cap = cv2.VideoCapture(0)
while True:#从摄像头读视频帧ret,frame = cap.read()#将视频帧在窗口中显示cv2.imshow('video',frame)key = cv2.waitKey(1) #不能为0,0为等待中断,只能读取到一帧的数据if(key & 0xFF == ord('q')):break#释放资源
cap.release() #释放视频资源
cv2.destroyAllWindows() #释放窗口资源
运行结果:
读取视频文件
从视频文件中读取视频帧
cap = cv2.VideoCapture("文件地址") #从文件获取视频
只处理视频,不处理音频,所以读取到的视频没有声音
播放速度设置
key = cv2.waitKey(40)
将视频数据录制成多媒体文件
VideoWriter()
write()
1秒多少帧,视频的像素(宽和高)
release() 释放资源,将磁盘中的数据输出
VideoWriter() 参数:
参数1:为输出文件位置
参数2:多媒体文件格式(VideoWriter_fourcc),fourcc所用编码器,Windows系统采用DIVX编码器
参数3:帧率
参数4:分辨率大小,应为摄像头实际分辨率
示例程序:
import cv2#创建VideoWriter为写多媒体文件
fourcc = cv2.VideoWriter_fourcc(*'DIVX')
vw = cv2.VideoWriter("C:\\Users\\Mengyang\\Desktop\\out.mp4",fourcc,25,(640,480))
##创建窗口
cv2.namedWindow('video',cv2.WINDOW_NORMAL)
cv2.resizeWindow('video',300,300) #设置窗口大小#获取视频设备
cap = cv2.VideoCapture(0)
#cap = cv2.VideoCapture("文件地址") 从文件获取视频while True:#从摄像头读视频帧ret,frame = cap.read()#将视频帧在窗口中显示cv2.imshow('video',frame)#写数据到多媒体文件vw.write(frame)key = cv2.waitKey(1) #不能为0,0为等待中断,只能读取到一帧的数据if(key & 0xFF == ord('q')):break#释放资源
cap.release() #释放VideoCapture
vw.release() #释放VideoWrite
cv2.destroyAllWindows() #释放窗口资源
代码优化
问题1:显示窗口为什么变大了?
在视频帧在窗口显示时重新设置一下窗口大小。
问题2:使用isOpened()判断摄像头是否已打开
问题3:采集数据时要判断数据是否获取到了
优化过的程序:
import cv2#创建VideoWriter为写多媒体文件
fourcc = cv2.VideoWriter_fourcc(*'DIVX')
vw = cv2.VideoWriter("C:\\Users\\Mengyang\\Desktop\\out.mp4",fourcc,25,(640,480))#创建窗口
cv2.namedWindow('video',cv2.WINDOW_NORMAL)
cv2.resizeWindow('video',300,300) #设置窗口大小#获取视频设备
cap = cv2.VideoCapture(0)
#cap = cv2.VideoCapture("文件地址") 从文件获取视频while cap.isOpened(): #判断摄像头是否已打开,若打开返回值则为True#从摄像头读视频帧ret,frame = cap.read()if ret ==True : #判断是否读取到数据#将视频帧在窗口中显示cv2.imshow('video',frame)cv2.resizeWindow('video',300,300) #重新设置窗口大小#写数据到多媒体文件vw.write(frame)key = cv2.waitKey(1) #不能为0,0为等待中断,只能读取到一帧的数据if(key & 0xFF == ord('q')):breakelse:break
#释放资源
cap.release() #释放VideoCapture
vw.release() #释放VideoWrite
cv2.destroyAllWindows() #释放窗口资源
4.通过Opencv采集摄像头视频数据相关推荐
- Android 手机采集摄像头视频 socket 视频传输实时传播
这里搜集了两种实现Android 手机采集摄像头视频 socket 视频传输实时传播的方法,两种都可以使用. 第一种如下: 1.通过客户端socket请求,服务端接受到请求后,获取socket的输出流 ...
- android 手机采集摄像头视频 socket 视频传输 实时传播
一.具体流程: 1.通过客户端socket请求,服务端接受到请求后,获取socket的输出流对象outs. 2.服务端通过Camera的setPreviewCallback方法回调采集摄像头视频数据, ...
- pyqt5 pyqt5+opencv 实现读取视频数据
pyqt5 pyqt5+opencv 实现读取视频数据 1.openCV读取视频数据 2.openCV集成pyqt5读取视频数据 界面美化版: 1.openCV读取视频数据 import cv2if ...
- ffmpeg 采集摄像头yuv数据
本文讲述在linux下,如何使用ffmpeg采集摄像头yuv数据,并保存为文件. 分为4个部分进行讲解 需要的软硬件环境 使用ffmpeg命令采集yuv数据. 使用ffmpeg代码采集yuv数据. 查 ...
- Qt+OpenCV读取摄像头视频、本地视频、网络视频流Demo
Qt+OpenCV读取摄像头视频.本地视频.网络视频流Demo
- 使用OpenCV采集摄像头的视频并保存为文件
OpenCV的VideoCapture功能强大,它封装了各种不同的API,见videoio.hpp enum VideoCaptureAPIs { CAP_ANY = ...
- c语言编程获取摄像头图像,OpenCV 获取摄像头图像数据并显示
下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. 用摄像头来获取数据的应用其实并不算太多,最近刚刚好用到,查了下用OpenCV来实现非常方便 ...
- python+opencv调用摄像头视频图像处理
在做深度学习的时候,难免会用到摄像头采集图像.在这个就会用到python调用摄像头+opencv图像处理.视频图像的处理和单幅图片处理是一样的,视频就是很多单幅图像连续播放.每秒播放(采集)的图片数量 ...
- 【2012年终总结】之一 opencv + ds采集摄像头视频 MFC点点滴滴
1.MFC单文档多文档程序 不让MFC来更新菜单 1 在CMainFrame::CMainFrame中添加 2 3 m_bAutoMenuEnable = FALSE; 标题栏图标的更改 1 //cu ...
最新文章
- Paddle Lite端侧部署
- 谷歌上线AI新玩法:随手乱涂鸦,一键变怪兽
- linux 下ab压力测试
- Java中使用Jedis连接Redis数据库流程
- struts2配置文件(简单)
- jsp mysql登录 demo_java jsp+servlet+mysql实现登录网页设计
- Python 刷题常用语法与数据结构汇总-2022.01.30
- Qt工作笔记-QListWidget鼠标拖动,一个到另一个,并遍历
- POJ 2185 Milking Grid (KMP,GCD)
- 机器学习笔记——支持向量机
- 2021年Tiktok用户增长和使用模式?
- C#实现IDispose接口
- python 写文件 换行_python中写入txt文件需要换行,以及\r 和\n
- swift 高级进阶1:类与结构体(上)
- eclipse搭建springmvc
- matlab混合copula,​MATLAB实战—最优Copula函数的选择
- 华为的哪个字体像苹果的_华为手机手写怎么变字体 苹果手写字体怎么变粗
- 网络流量分析系统的价值
- 数学|如何求解线性方程系数?
- Jetson Orin 平台MAX9296+森云SG5-IMX490C-GMSL2 RGGB(无ISP)驱动调试
热门文章
- 查询主机名对应的IP地址-C语言
- 论文阅读Measuring Regularity of Individual Travel Patterns
- 尚硅谷es6新特性笔记
- 【算力网络】算力网络的技术创新——绿色与安全关键技术
- python交通调查数据处理_GitHub - unlimitbladeworks/traffic-monitor: 基于高德地图的交通数据分析...
- 【算法与数据结构】——乘法逆元
- 【PMAC学习笔记——第0篇】初识PMAC运动控制卡以及 Microsoft Visual C++ 2019,PeWin32 PRO2环境搭建
- java与模式--里氏代换原则,依赖倒置原则
- SPI总线通信——基于STM32MP157A
- 友价商城源码插件-百度链接主动提交