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 相关文章推荐
使用PYTHON创建XML文档
Mar 01 Python
Python中的super()方法使用简介
Aug 14 Python
Python 正则表达式入门(初级篇)
Dec 07 Python
python构建自定义回调函数详解
Jun 20 Python
Python实现的文本编辑器功能示例
Jun 30 Python
python与sqlite3实现解密chrome cookie实例代码
Jan 20 Python
使用django-guardian实现django-admin的行级权限控制的方法
Oct 30 Python
python爬取酷狗音乐排行榜
Feb 20 Python
django 数据库连接模块解析及简单长连接改造方法
Aug 29 Python
Python3.8对可迭代解包的改进及用法详解
Oct 15 Python
python实现一个点绕另一个点旋转后的坐标
Dec 04 Python
详解OpenCV曝光融合
Apr 29 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对XML的操作详解
2013/06/07 PHP
浅析PHP的静态成员函数效率更高的原因
2014/06/13 PHP
基于laravel制作APP接口(API)
2016/03/15 PHP
使用PHP json_decode可能遇到的坑与解决方法
2017/08/03 PHP
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
Javascript仿新浪游戏频道鼠标悬停显示子菜单效果
2015/08/21 Javascript
探究JavaScript函数式编程的乐趣
2015/12/14 Javascript
javascript实现保留两位小数的多种方法
2015/12/18 Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
2018/12/20 Javascript
JS使用数组实现的队列功能示例
2019/03/04 Javascript
JS简单数组排序操作示例【sort方法】
2019/05/17 Javascript
JavaScript对象原型链原理解析
2020/01/22 Javascript
小程序如何定位所在城市及发起周边搜索
2020/02/11 Javascript
vue实现两个区域滚动条同步滚动
2020/12/13 Vue.js
布同 Python中文问题解决方法(总结了多位前人经验,初学者必看)
2011/03/13 Python
python 网络爬虫初级实现代码
2016/02/27 Python
手把手教你用python抢票回家过年(代码简单)
2018/01/21 Python
tensorflow实现简单逻辑回归
2018/09/07 Python
Python常见数字运算操作实例小结
2019/03/22 Python
Numpy中对向量、矩阵的使用详解
2019/10/29 Python
python词云库wordCloud使用方法详解(解决中文乱码)
2020/02/17 Python
Python根据字符串调用函数过程解析
2020/11/05 Python
高中毕业生自我鉴定范文
2013/09/26 职场文书
单位领导证婚词
2014/01/14 职场文书
甜美蛋糕店创业计划书
2014/01/30 职场文书
师范学院教师自荐书
2014/01/31 职场文书
2014年消防工作实施方案
2014/02/20 职场文书
爱护公共设施标语
2014/06/24 职场文书
学习“七一”讲话精神体会
2014/07/08 职场文书
建筑管理专业求职信
2014/07/28 职场文书
摄影专业毕业生求职信
2014/08/05 职场文书
运动会稿件100字
2014/09/24 职场文书
安全生产月标语
2014/10/07 职场文书
2015年销售员工作总结范文
2015/04/07 职场文书
教学工作总结范文5篇
2019/08/19 职场文书