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自动安装pip
Apr 24 Python
python3 shelve模块的详解
Jul 08 Python
基于anaconda下强大的conda命令介绍
Jun 11 Python
Pandas过滤dataframe中包含特定字符串的数据方法
Nov 07 Python
Python配置虚拟环境图文步骤
May 20 Python
Python re 模块findall() 函数返回值展现方式解析
Aug 09 Python
关于Pytorch的MLP模块实现方式
Jan 07 Python
使用Tensorflow实现可视化中间层和卷积层
Jan 24 Python
Python之字典添加元素的几种方法
Sep 30 Python
python里glob模块知识点总结
Jan 05 Python
Python3使用Qt5来实现简易的五子棋小游戏
May 02 Python
python如何为list实现find方法
May 30 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
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
2007/09/24 PHP
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
关于二级目录拖拽排序的实现(源码示例下载)
2013/04/26 PHP
Laravel 的数据库迁移的方法
2017/07/31 PHP
Ext javascript建立超链接,进行事件处理的实现方法
2009/03/22 Javascript
jQuery源码分析-03构造jQuery对象-工具函数
2011/11/14 Javascript
深入分析js中的constructor和prototype
2012/04/07 Javascript
将json对象转换为字符串的方法
2014/02/20 Javascript
jQuery DOM操作实例
2014/03/05 Javascript
简单的js图片轮换代码(js图片轮播)
2014/05/06 Javascript
JavaScript中的toLocaleDateString()方法使用简介
2015/06/12 Javascript
Javascript实现的SHA-256加密算法完整实例
2016/02/02 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
2017/01/17 Javascript
React Native中Navigator的使用方法示例
2017/10/13 Javascript
在create-react-app中使用css modules的示例代码
2018/07/31 Javascript
nuxt中使用路由守卫的方法步骤
2019/01/27 Javascript
ES6小技巧之代替lodash
2019/06/07 Javascript
js、jquery实现列表模糊搜索功能过程解析
2020/03/27 jQuery
Python实现按特定格式对文件进行读写的方法示例
2017/11/30 Python
python编程嵌套函数实例代码
2018/02/11 Python
Python hashlib模块用法实例分析
2018/06/12 Python
Python面向对象之类的定义与继承用法示例
2019/01/14 Python
Python求一批字符串的最长公共前缀算法示例
2019/03/02 Python
python使用pandas处理大数据节省内存技巧(推荐)
2019/05/05 Python
python实现电子书翻页小程序
2019/07/23 Python
Django分页功能的实现代码详解
2019/07/29 Python
Python OpenCV实现鼠标画框效果
2020/08/19 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
TripAdvisor德国:全球领先的旅游网站
2017/12/07 全球购物
幼儿园家长评语大全
2014/04/16 职场文书
医院院务公开实施方案
2014/05/03 职场文书
2014年学生会工作总结范文
2014/11/07 职场文书
通报表扬范文
2015/01/17 职场文书
小学总务工作总结
2015/08/13 职场文书
深入理解java.lang.String类的不可变性
2021/06/27 Java/Android
PyMongo 查询数据的实现
2021/06/28 Python