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 05 Python
关于Django外键赋值问题详解
Aug 13 Python
你真的了解Python的random模块吗?
Dec 12 Python
Python TestCase中的断言方法介绍
May 02 Python
WxPython实现无边框界面
Nov 18 Python
Cython编译python为so 代码加密示例
Dec 23 Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
Jan 04 Python
彻底搞懂python 迭代器和生成器
Sep 07 Python
python实现企业微信定时发送文本消息的实例代码
Nov 25 Python
python 日志模块logging的使用场景及示例
Jan 04 Python
python 下载文件的几种方式分享
Apr 07 Python
Python实现仓库管理系统
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
用PHP为SHOPEX增加日志功能代码
2010/07/02 PHP
使用PHP实现阻止用户上传成人照片或者裸照
2014/12/25 PHP
在php和MySql中计算时间差的方法详解
2015/03/27 PHP
CI框架实现cookie登陆的方法详解
2016/05/18 PHP
php中preg_replace_callback函数简单用法示例
2016/07/21 PHP
php实现数组纵向转横向并过滤重复值的方法分析
2017/05/29 PHP
详解php 使用Callable Closure强制指定回调类型
2017/10/26 PHP
laravel实现上传图片的两种方式小结
2019/10/12 PHP
javascript eval函数深入认识
2009/02/21 Javascript
JavaScript中将一个值转换为字符串的方法分析[译]
2012/09/21 Javascript
自动刷新网页,自动刷新当前页面,JS调用
2013/06/24 Javascript
jQuery动态设置form表单的enctype值(实现代码)
2013/07/04 Javascript
AJAX跨域请求json数据的实现方法
2013/11/11 Javascript
JavaScript实现网页截图功能
2014/10/16 Javascript
JS往数组中添加项性能分析
2015/02/25 Javascript
JSONObject使用方法详解
2015/12/17 Javascript
jquery层级选择器(匹配父元素下的子元素实现代码)
2016/09/05 Javascript
概述一个页面从输入URL到页面加载完的过程
2016/12/16 Javascript
利用js编写网页进度条效果
2017/10/08 Javascript
旺旺在线客服代码 旺旺客服代码生成器
2018/01/09 Javascript
AngularJS实现动态切换样式的方法分析
2018/06/26 Javascript
vue.js删除列表中的一行
2018/06/30 Javascript
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
2019/11/18 jQuery
利用webpack理解CommonJS和ES Modules的差异区别
2020/06/16 Javascript
python多线程编程中的join函数使用心得
2014/09/02 Python
Python实现的连接mssql数据库操作示例
2018/08/17 Python
python elasticsearch环境搭建详解
2019/09/02 Python
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
2018/09/19 HTML / CSS
群众路线教育查摆剖析材料
2014/10/10 职场文书
个人学习党的群众路线教育实践活动心得体会
2014/11/05 职场文书
2015选调生工作总结
2015/07/24 职场文书
2016感恩母亲节校园广播稿
2015/12/17 职场文书
中学语文教学反思
2016/02/16 职场文书
CSS3点击按钮圆形进度打钩效果的实现代码
2021/03/30 HTML / CSS
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
2021/04/01 PHP
Python 数据可视化之Bokeh详解
2021/11/02 Python