opencv+python读写视频流
#环境:opencv 3.4.0 python 3.5.2
#读取视频
import cv2
cap = cv2.VideoCapture('video.avi')
#读取摄像头,0为摄像头索引,当有多个摄像头时,从0开始编号
cap = cv2.VideoCapture(0)
#从视频或摄像头中读取一帧(即一张图像),返回是否成功标识ret(True代表成功,False代表失败),img为读取的视频帧
ret,frame = cap.read()
#完整的读取视频流并播放视频流代码
# -*- coding:utf-8 -*-
import cv2
cap = cv2.VideoCapture("video.avi")
while(1):
# 读取视频帧
ret, frame = cap.read()
# 显示视频帧
cv2.imshow("capture", frame)
#等候50ms,播放下一帧,或者按q键退出
if cv2.waitKey(50) &0xFF ==ord('q'):
break
#释放视频流
cap.release()
#关闭所有窗口
cv2.destroyAllWindows()
#创建视频流写入对象,VideoWriter_fourcc为视频编解码器,20为帧播放速率,(640,480)为视频帧大小
videoWriter = cv2.VideoWriter('video.avi', cv2.VideoWriter_fourcc('I', '4', '2', '0'), 20, (640,480))
#向视频文件写入一帧
videoWriter.write(frame)
#详解cv2.VideoWriter_fourcc对象(摘自Learning OpenCV3 Computer Vision with Python,坦白讲不太懂)
#fourcc意为四字符代码(Four-Character Codes),顾名思义,该编码由四个字符组成,下面是VideoWriter_fourcc对象一些常用的参数,注意:字符顺序不能弄混
#cv2.VideoWriter_fourcc('I', '4', '2', '0'),该参数是YUV编码类型,文件名后缀为.avi
#cv2.VideoWriter_fourcc('P', 'I', 'M', 'I'),该参数是MPEG-1编码类型,文件名后缀为.avi
#cv2.VideoWriter_fourcc('X', 'V', 'I', 'D'),该参数是MPEG-4编码类型,文件名后缀为.avi
#cv2.VideoWriter_fourcc('T', 'H', 'E', 'O'),该参数是Ogg Vorbis,文件名后缀为.ogv
#cv2.VideoWriter_fourcc('F', 'L', 'V', '1'),该参数是Flash视频,文件名后缀为.flv
#以下为写视频的完整代码
#-*-coding:utf-8-*-
import cv2
cap = cv2.VideoCapture('./dataset/video/cap_zhihao.avi')
fps =int(cap.get(cv2.CAP_PROP_FPS))
size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),
int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
videoWriter = cv2.VideoWriter('video.avi', cv2.VideoWriter_fourcc('I','4','2','0'), fps, size)
ret, frame = cap.read()
while(ret):
# 展示一帧
cv2.imshow("capture", frame)
videoWriter.write(frame)
cv2.waitKey(fps)
ret,frame = cap.read()
cap.release()
cv2.destroyAllWindows()
作者:远叔
链接:https://www.jianshu.com/p/d239e221cab4
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
opencv+python读写视频流相关推荐
- opencv python全屏显示、置窗口大小和位置
opencv python全屏显示.设置窗口大小和位置 文章目录: 一.全屏显示图片或视频 二.设置窗口的大小和位置 1.设置窗口的大小 2.设置窗口的位置 一.全屏显示图片或视频 有时我们需要显示图 ...
- opencv 图像读写显示、matplotlib 库图像读写显示
图片格式: bmp 全称:Bitmap 不压缩 png 全称:Portable Network Graphics 无损压缩 jpg 全称:Joint Photographic Experts Grou ...
- flask+python 实时视频流输出到前台
flask+python 实时视频流输出到前台 二.问题描述: 1.调用摄像头获取视频流 2.将视频流处理并传递给浏览器 3.不是录制后处理,而是边录制边处理,边传递 4. flash后台进行处理,而 ...
- 【学习OpenCV4】案例3:OpenCV Python语言开发环境搭建
本书分享内容来自图书学习OpenCV 4:基于Python的算法实战>,该书刚刚上市,是国内第一本系统讲解OpenCV4各个模块的图书,配套案例深入浅出的讲解.第一章有在各个平台搭建环境的介绍, ...
- 用Numba加速OpenCV Python视频处理代码,提升6.5倍性能
使用Numba对OpenCV Python视频处理代码加速.性能提升6.5倍 1.目标问题: 在 OpenCV Python 中视频处理是比较耗资源的,从而造成画面卡顿,如果跳帧处理可能造成丢失关键数 ...
- python 读写16bit图像的四种方法
python 读写16bit图像的四种方法 应对超高清.HDR等图像增强类深度学习任务和专业图片处理任务时,我们需要对16bit图像进行读取.转tensor和保存等操作,这里总结出四种python实现 ...
- OpenCV+python:Canny边缘检测算法
1,边缘处理 图像边缘信息主要集中在高频段,通常说图像锐化或检测边缘,实质就是高频滤波.我们知道微分运算是求信号的变化率,具有加强高频分量的作用. 在空域运算中来说,对图像的锐化就是计算微分.由于数字 ...
- OpenCV Python在计算机视觉中的应用
OpenCV Python教程 在这篇文章中,我们将使用Python中的OpenCv来涵盖计算机视觉的各个方面.OpenCV长期以来一直是软件开发的重要组成部分. 什么是计算机视觉? 我们考虑一个场景 ...
- python读写压缩文件使用gzip和bz2
python读写压缩文件使用gzip和bz2 #读取压缩文件 # gzip compression import gzip with gzip.open('somefile.gz', 'rt') as ...
最新文章
- Oracle添加定时任务
- 23装饰模式(Decorator Pattern)
- idea新建xml文件
- Android自定义对话框(Dialog)位置,大小
- 深入理解 Linux 的 RCU 机制
- 某处发现百分百恢复覆盖的分区数据恢复方法(掌握)
- 极域电子书包课堂管理系统怎么控屏_极域电子教室使用说明
- [20170209]索引范围访问2.txt
- code review流程规范。
- CAD如何绘制多边形的外切圆?
- 熊绎:我看软件工程师的职业规划
- 小米发明“永动机”:走路即可为智能设备充电
- 市场营销环境分析的方法
- GA002-186-11
- PowerBI数据处理-聚合
- HDU1255 覆盖的面积 (线段树 + 扫描线)
- OpenCV基础九:滤波与卷积(陆续更新)
- teamviewer存在linux版本_TeamViewer 9发布-在Linux下安装运行
- javascript事件触发器
- Java入门 18 3\25
热门文章
- 2017暑假 第四周 学习总结(复习)
- eclipse 和 myeclipse 字符编码设置
- 20145208 20145230 20145235 《信息安全系统设计基础》实验三 实时系统的移植
- duilib拖动控制功能的实现(源代码)
- SPOJ 3899. Finding Fractions 连分数
- python学起来难不难-python很难学?学起来很吃力,想放弃?看别人是怎样学习的...
- python空类型-python 空类型
- python笔记基础-python笔记(二)基础二
- python推荐书籍-7本经典的Python书籍,你都读过了么?
- python代码壁纸-python实现壁纸批量下载代码实例