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多重继承新算法C3介绍
Sep 28 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
Mar 16 Python
Python中创建字典的几种方法总结(推荐)
Apr 27 Python
Python Pandas批量读取csv文件到dataframe的方法
Oct 08 Python
PyQt4实时显示文本内容GUI的示例
Jun 14 Python
在pytorch中为Module和Tensor指定GPU的例子
Aug 19 Python
Python单链表原理与实现方法详解
Feb 22 Python
基于打开pycharm有带图片md文件卡死问题的解决
Apr 24 Python
python类共享变量操作
Sep 03 Python
UI自动化定位常用实现方法代码示例
Oct 27 Python
浅析Python的命名空间与作用域
Nov 25 Python
Python实现猜拳与猜数字游戏的方法详解
Apr 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
php 学习资料零碎东西
2010/12/04 PHP
php中session_unset与session_destroy的区别分析
2011/06/16 PHP
ajax php传递和接收变量实现思路及代码
2012/12/19 PHP
PHP从FLV文件获取视频预览图的方法
2015/03/12 PHP
crontab无法执行php的解决方法
2016/01/25 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
2016/04/07 PHP
ThinkPHP3.2.3实现分页的方法详解
2016/06/03 PHP
yii2实现 &quot;上一篇,下一篇&quot; 功能的代码实例
2017/02/04 PHP
javascript数组去重3种方法的性能测试与比较
2013/03/26 Javascript
jQuery实现表头固定效果的实例代码
2013/05/24 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
基于Jquery代码实现手风琴菜单
2015/11/19 Javascript
jquery编写Tab选项卡滚动导航切换特效
2020/07/17 Javascript
可输入文字查找ajax下拉框控件 ComBox的实现方法
2016/10/25 Javascript
AngularJS实现动态编译添加到dom中的方法
2016/11/04 Javascript
javascript实现复选框全选或反选
2017/02/04 Javascript
vue 请求后台数据的实例代码
2017/06/22 Javascript
微信小程序使用request网络请求操作实例
2017/12/15 Javascript
如何获取TypeScript的声明文件.d.ts
2018/05/01 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
2019/04/10 jQuery
vscode+gulp轻松开发小程序的完整步骤
2020/10/18 Javascript
Python 用户登录验证的小例子
2013/03/06 Python
python简单实现基于SSL的IRC bot实例
2015/06/15 Python
Python中生成Epoch的方法
2017/04/26 Python
Python操作MySQL数据库的方法
2018/06/20 Python
Python3基础教程之递归函数简单示例
2019/06/07 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
Python 多进程、多线程效率对比
2020/11/19 Python
欧洲领先的火车票和大巴票预订平台:Trainline
2018/12/26 全球购物
CLR与IL分别是什么含义
2016/08/23 面试题
广告语设计及教案
2014/03/21 职场文书
民生工作实施方案
2014/05/31 职场文书
工地标语大全
2014/06/18 职场文书
初中教务主任竞聘演讲稿(范文)
2019/08/20 职场文书