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实现给文件添加内容及得到文件信息的方法
May 28 Python
python使用MySQLdb访问mysql数据库的方法
Aug 03 Python
Python中列表和元组的相关语句和方法讲解
Aug 20 Python
Python HTTP客户端自定义Cookie实现实例
Apr 28 Python
解决pycharm 误删掉项目文件的处理方法
Oct 22 Python
Python中logging实例讲解
Jan 17 Python
python傅里叶变换FFT绘制频谱图
Jul 19 Python
numpy.random.shuffle打乱顺序函数的实现
Sep 10 Python
QML使用Python的函数过程解析
Sep 26 Python
Python实现获取当前目录下文件名代码详解
Mar 10 Python
python爬虫实例之获取动漫截图
May 31 Python
解决pycharm修改代码后第一次运行不生效的问题
Feb 06 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
让Json更懂中文(JSON_UNESCAPED_UNICODE)
2011/10/27 PHP
php生成二维码的几种方式整理及使用实例
2013/06/03 PHP
强烈声明: 不要使用(include/require)_once
2013/06/06 PHP
jQuery选择没有colspan属性的td的代码
2010/07/06 Javascript
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
js设置组合快捷键/tabindex功能的方法
2013/11/21 Javascript
node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
2014/11/04 Javascript
Js实现自定义右键行为
2015/03/26 Javascript
JavaScript中使用数组方法汇总
2016/02/16 Javascript
不定义JQuery插件 不要说会JQuery
2016/03/07 Javascript
jQuery调用Webservice传递json数组的方法
2016/08/06 Javascript
BootStrap Validator使用注意事项(必看篇)
2016/09/28 Javascript
js鼠标移动时禁止选中文字
2017/02/19 Javascript
PHP实现本地图片上传和验证功能
2017/02/27 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
2017/06/19 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
JavaScript undefined及null区别实例解析
2020/07/21 Javascript
Python 执行字符串表达式函数(eval exec execfile)
2014/08/11 Python
简单理解Python中的装饰器
2015/07/31 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
2019/09/25 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
2019/12/03 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
Python 程序员必须掌握的日志记录
2020/08/17 Python
中外合拍动画首获奥斯卡提名,“上海出品”《飞奔去月球》能否拿下最终大奖?
2021/03/16 国漫
七匹狼男装广告词
2014/03/21 职场文书
求职自荐信的格式
2014/04/07 职场文书
人力资源管理毕业求职信
2014/08/05 职场文书
小学生纪念九一八事变演讲稿
2014/09/14 职场文书
党员公开承诺书2015
2015/01/21 职场文书
先进教师个人总结
2015/02/11 职场文书
离婚上诉状范文
2015/05/23 职场文书
感谢信
2019/04/11 职场文书
如何写好活动总结
2019/06/21 职场文书
如何书写公司员工保密协议?
2019/06/27 职场文书
导游词之塘栖古镇
2019/12/04 职场文书
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL