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 uuid模块使用实例
Apr 08 Python
Python中使用装饰器时需要注意的一些问题
May 11 Python
python采用django框架实现支付宝即时到帐接口
May 17 Python
OpenCV实现人脸识别
Apr 07 Python
Python编程之变量赋值操作实例分析
Jul 24 Python
python出现&quot;IndentationError: unexpected indent&quot;错误解决办法
Oct 15 Python
致Python初学者 Anaconda入门使用指南完整版
Apr 05 Python
Python实现处理逆波兰表达式示例
Jul 30 Python
学习python的前途 python挣钱
Feb 27 Python
基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能
Jul 15 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
Jul 16 Python
分享PyCharm最新激活码(真永久激活方法)不用每月找安装参数或最新激活码了
Dec 27 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
全国FM电台频率大全 - 24 贵州省
2020/03/11 无线电
一个php导出oracle库的php代码
2009/04/20 PHP
php 字符过滤类,用于过滤各类用户输入的数据
2009/05/27 PHP
Thinkphp中数据按分类嵌套循环实现方法
2014/10/30 PHP
PHP页面转UTF-8中文编码乱码的解决办法
2015/10/20 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
2015/12/09 PHP
PHP生成可点击刷新的验证码简单示例
2016/05/13 PHP
php array_pop 删除数组最后一个元素实例
2016/11/02 PHP
PHP屏蔽关键字实现方法
2016/11/17 PHP
[原创]php正则删除img标签的方法示例
2017/05/27 PHP
PHP设计模式之PHP迭代器模式讲解
2019/03/22 PHP
php中数组最简单的使用方法
2020/12/27 PHP
JavaScript中的私有成员
2006/09/18 Javascript
基于jQuery的仿flash的广告轮播
2010/11/05 Javascript
关于jQuery参考实例2.0 用jQuery选择元素
2013/04/07 Javascript
JavaScript中的操作符类型转换示例总结
2016/05/30 Javascript
JavaScript实现倒计时跳转页面功能【实用】
2016/12/13 Javascript
利用ES6语法重构React组件详解
2017/03/02 Javascript
Ajax异步文件上传与NodeJS express服务端处理
2017/04/01 NodeJs
详解关于html,css,js三者的加载顺序问题
2019/04/10 Javascript
在vue中使用Echarts画曲线图的示例
2020/10/03 Javascript
基于python指定包的安装路径方法
2018/10/27 Python
Python数据可视化教程之Matplotlib实现各种图表实例
2019/01/13 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
django基础学习之send_mail功能
2019/08/07 Python
pycharm快捷键汇总
2020/02/14 Python
Python HTTP下载文件并显示下载进度条功能的实现
2020/04/02 Python
详解如何用canvas画一个微笑的表情
2019/03/14 HTML / CSS
使用索引(Index)有哪些需要考虑的因素
2016/10/19 面试题
推荐信模板
2014/05/09 职场文书
群众路线教育实践活动思想汇报(2014特荐篇)
2014/09/16 职场文书
个人贷款授权委托书样本
2014/10/07 职场文书
2014公司年终工作总结
2014/12/19 职场文书
团员个人年度总结
2015/02/26 职场文书
销售内勤岗位职责范本
2015/04/13 职场文书
服务器间如何实现文件共享
2022/05/20 Servers