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中在脚本中引用其他文件函数的实现方法
Jun 23 Python
Python处理json字符串转化为字典的简单实现
Jul 07 Python
Python selenium 三种等待方式解读
Sep 15 Python
python利用有道翻译实现&quot;语言翻译器&quot;的功能实例
Nov 14 Python
pycharm远程调试openstack代码
Nov 21 Python
对python中执行DOS命令的3种方法总结
May 12 Python
python3获取文件中url内容并下载代码实例
Dec 27 Python
使用Python发现隐藏的wifi
Mar 04 Python
使用python matploblib库绘制准确率,损失率折线图
Jun 16 Python
Python必须了解的35个关键词
Jul 16 Python
python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境
Dec 14 Python
Python使用BeautifulSoup4修改网页内容
May 20 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
CodeIgniter实现更改view文件夹路径的方法
2014/07/04 PHP
PHP写日志的实现方法
2014/11/05 PHP
PHP设计模式(四)原型模式Prototype实例详解【创建型】
2020/05/02 PHP
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
2007/03/06 Javascript
用js实现的抽象CSS圆角效果!!
2007/05/03 Javascript
JavaScript 基础知识 被自己遗忘的
2009/10/15 Javascript
js自动生成对象的属性示例代码
2013/10/28 Javascript
javascript的tab切换原理与效果实现方法
2015/01/10 Javascript
javascript表格的渲染组件
2015/07/03 Javascript
JavaScript实现打字效果的方法
2015/07/10 Javascript
深入理解js中this的用法
2016/05/28 Javascript
jquery延迟对象解析
2016/10/26 Javascript
基于vue.js路由参数的实例讲解——简单易懂
2017/09/07 Javascript
Javascript实现运算符重载详解
2018/04/07 Javascript
vue 标签属性数据绑定和拼接的实现方法
2018/05/17 Javascript
Vue实现表格中对数据进行转换、处理的方法
2018/09/06 Javascript
浅析vue中的provide / inject 有什么用处
2019/11/10 Javascript
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
2020/06/19 Javascript
js实现跳一跳小游戏
2020/07/31 Javascript
vue项目在线上服务器访问失败原因分析
2020/08/14 Javascript
[15:58]DOTA2国际邀请赛采访专栏:Tongfu.Sansheng&KingJ,DK.rOtk
2013/08/08 DOTA
[00:12]DAC2018 no[o]ne亮相SOLO赛 他是否如他的id一样无人可挡?
2018/04/06 DOTA
python实现问号表达式(?)的方法
2013/11/27 Python
在Python中进行自动化单元测试的教程
2015/04/15 Python
Python缩进和冒号详解
2016/06/01 Python
用Python将结果保存为xlsx的方法
2019/01/28 Python
在pycharm下设置自己的个性模版方法
2019/07/15 Python
解决Django连接db遇到的问题
2019/08/29 Python
Otticanet美国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
办公室保洁员岗位职责
2013/12/02 职场文书
情侣吵架检讨书
2014/02/05 职场文书
销售主管岗位职责范本
2014/02/14 职场文书
解除同居协议书
2015/01/29 职场文书
赤壁观后感(2)
2015/06/15 职场文书
创业计划书之家教托管
2019/09/25 职场文书
简单聊聊Golang中defer预计算参数
2022/03/25 Golang