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中的生成器和yield详细介绍
Jan 09 Python
python提取内容关键词的方法
Mar 16 Python
python实现同时给多个变量赋值的方法
Apr 30 Python
十个Python程序员易犯的错误
Dec 15 Python
python使用threading获取线程函数返回值的实现方法
Nov 15 Python
Python实现Pig Latin小游戏实例代码
Feb 02 Python
python二维列表一维列表的互相转换实例
Jul 02 Python
python实现决策树分类
Aug 30 Python
python 判断矩阵中每行非零个数的方法
Jan 26 Python
Python分类测试代码实例汇总
Jul 23 Python
Python编写万花尺图案实例
Jan 03 Python
利用Python实现模拟登录知乎
May 25 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
BBS(php &amp; mysql)完整版(四)
2006/10/09 PHP
PHP中的正则表达式函数介绍
2012/02/27 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
php实现的漂亮分页方法
2014/04/17 PHP
EasyUI的treegrid组件动态加载数据问题的解决办法
2011/12/11 Javascript
js获取当月最后一天实例代码
2013/11/19 Javascript
浅析JavaScript中的CSS属性及命名规范
2013/11/28 Javascript
JavaScript实现按Ctrl键打开新页面
2014/09/04 Javascript
JavaScript sub方法入门实例(把字符串显示为下标)
2014/10/17 Javascript
详解jquery中$.ajax方法提交表单
2014/11/03 Javascript
jQuery表单验证功能实例
2015/08/28 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
2016/06/03 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
2016/06/09 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
2016/06/21 Javascript
JS控件bootstrap suggest plugin使用方法详解
2017/03/25 Javascript
[48:48]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
使用Python脚本将Bing的每日图片作为桌面的教程
2015/05/04 Python
Python判断两个对象相等的原理
2017/12/12 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
Python正则表达式指南 推荐
2018/10/09 Python
python tkinter之 复选、文本、下拉的实现
2020/03/04 Python
python线程池 ThreadPoolExecutor 的用法示例
2020/10/10 Python
详解HTML5中ol标签的用法
2015/09/08 HTML / CSS
.net软件工程师面试题
2015/03/31 面试题
标记环介质访问控制协议
2016/03/27 面试题
应用电子技术专业个人求职信
2013/09/21 职场文书
个人自我鉴定范文
2013/10/04 职场文书
通信工程毕业生求职信
2013/11/16 职场文书
学习新党章思想汇报
2014/01/09 职场文书
《夜晚的实验》教学反思
2014/02/19 职场文书
小露珠教学反思
2014/04/30 职场文书
实习工作表现评语
2014/12/31 职场文书
2016年校长新年寄语
2015/08/17 职场文书
怎样做好公众演讲能力?
2019/08/28 职场文书
实现AJAX异步调用和局部刷新的基本步骤
2022/03/17 Javascript