Python OpenCV视频截取并保存实现代码


Posted in Python onNovember 30, 2019

这篇文章主要介绍了Python OpenCV视频截取并保存实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

在图像处理之前,我们需要对拿到手的数据进行筛选,对于视频,我们需要从中截取我们需要的一段或几段

整体思路比较简单,通过设定截取视频的起止时间(帧数),可以将该时间段内的图像保存为新的视频

直接上代码

"""
【函数名称】 截取视频 
【参数】 输入参数 视频文件名称
【详细介绍】 输入不同时间段 进行截取拼接
【创建日期】 20191128 by wangxioabei
【修改日期】 NOTE.1: 
"""
def CutVideoFromFile(video_file_name,windows_name = 'videoShowing'):
  cap = cv2.VideoCapture(video_file_name) # 打开视频文件
  # 需要明确视频保存的格式
  fourcc = cv2.VideoWriter_fourcc(*'XVID')
  fps = cap.get(cv2.CAP_PROP_FPS)
  print('帧率:%d'%fps)
  size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
  out = cv2.VideoWriter('BeltTear.avi',fourcc,fps, size)
  SaveTime = [[38*60+38,39*60+59],[42*60+54,44*60+11],[47*60+8,48*60+24],[51*60+20,52*60+39]]
  print(SaveTime[0][0])
  now_frame = 0
  while (cap.isOpened()):
    ret, frame = cap.read() # 捕获一帧图像
    img_h, img_w, img_ch = frame.shape
    # print(frame.shape)
    if ret:
      # 【1】 不能直接将灰度或二值化的图片保存成视频,需要转换成彩色
      if img_ch==1:
        frame = cv2.cvtColor(frame, cv2.COLOR_GRAY2BGR)
      # cv2.imshow(windows_name, frame)
      for i in range(len(SaveTime)):
        if now_frame > SaveTime[i][0]*fps and now_frame < SaveTime[i][1]*fps:
          out.write(frame)
          print(now_frame)
      now_frame += 1
      if now_frame > SaveTime[2][1]*fps:
        break;
      k = cv2.waitKey(1) & 0xFF
      if k == 27:
        break
      # cv2.waitKey(25)
    else:
      break
  cap.release()
  out.release()
  cv2.destroyAllWindows()

其中SaveTime列表 中嵌套的列表为截取视频的时间s,也可以将其当做参数传入,即可封装整个函数。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
深入浅析ImageMagick命令执行漏洞
Oct 11 Python
Python脚本实现自动将数据库备份到 Dropbox
Feb 06 Python
Python之web模板应用
Dec 26 Python
python高斯分布概率密度函数的使用详解
Jul 10 Python
python爬虫 execjs安装配置及使用
Jul 30 Python
pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法
Aug 17 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
Aug 24 Python
pandas中read_csv、rolling、expanding用法详解
Apr 21 Python
python适合做数据挖掘吗
Jun 16 Python
MAC平台基于Python Appium环境搭建过程图解
Aug 13 Python
python获取本周、上周、本月、上月及本季的时间代码实例
Sep 08 Python
Python 中 sorted 如何自定义比较逻辑
Feb 02 Python
解决os.path.isdir() 判断文件夹却返回false的问题
Nov 29 #Python
windows环境中利用celery实现简单任务队列过程解析
Nov 29 #Python
基于Python中isfile函数和isdir函数使用详解
Nov 29 #Python
python os.path.isfile 的使用误区详解
Nov 29 #Python
python实现矩阵和array数组之间的转换
Nov 29 #Python
Python3 使用map()批量的转换数据类型,如str转float的实现
Nov 29 #Python
python os.path.isfile()因参数问题判断错误的解决
Nov 29 #Python
You might like
PHP SEO优化之URL优化方法
2011/04/21 PHP
作为PHP程序员应该了解MongoDB的五件事
2013/06/03 PHP
分享一段php获取linux服务器状态的代码
2014/05/27 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
2019/04/15 PHP
js ondocumentready onmouseover onclick onmouseout 样式
2010/07/22 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
jQuery选择id属性带有点符号元素的方法
2015/03/17 Javascript
jQuery控制cookie过期时间的方法
2015/04/07 Javascript
JS+CSS实现简单滑动门(滑动菜单)效果
2015/09/19 Javascript
javascript运算符——位运算符全面介绍
2016/07/14 Javascript
Angular表单验证实例详解
2016/10/20 Javascript
原生js实现倒计时功能(多种格式调用)
2017/01/12 Javascript
详解React之key的使用和实践
2018/09/29 Javascript
JavaScript数组去重实现方法小结
2020/01/17 Javascript
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
[41:17]VG vs Optic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
一个基于flask的web应用诞生 记录用户账户登录状态(6)
2017/04/11 Python
python学生信息管理系统
2018/03/13 Python
python模块smtplib学习
2018/05/22 Python
Python使用pylab库实现绘制直方图功能示例
2018/06/01 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
python用quad、dblquad实现一维二维积分的实例详解
2019/11/20 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
2020/01/15 Python
pip安装tensorflow的坑的解决
2020/04/19 Python
python框架flask入门之路由及简单实现方法
2020/06/07 Python
深入理解HTML的FormData对象
2016/05/17 HTML / CSS
英格兰足协官方商店:England Store
2019/07/12 全球购物
教师师德教育的自我评价
2013/10/31 职场文书
四年大学自我鉴定
2014/02/17 职场文书
租房协议书
2014/04/10 职场文书
中班幼儿评语大全
2014/04/30 职场文书
十佳青年事迹材料
2014/08/21 职场文书
庆祝儿童节标语
2014/10/09 职场文书
Redis可视化客户端小结
2021/06/10 Redis
前端canvas中物体边框和控制点的实现示例
2022/08/05 Javascript
go goth封装第三方认证库示例详解
2022/08/14 Golang