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的Django框架中使用SQLAlchemy操作数据库的教程
Jun 02 Python
Python算法之求n个节点不同二叉树个数
Oct 27 Python
Python比较2个时间大小的实现方法
Apr 10 Python
关于Pycharm无法debug问题的总结
Jan 19 Python
python使用matplotlib画柱状图、散点图
Mar 18 Python
利用python list完成最简单的DB连接池方法
Aug 09 Python
使用OpenCV实现仿射变换—平移功能
Aug 29 Python
Python生成器传参数及返回值原理解析
Jul 22 Python
浅析Python 字符编码与文件处理
Sep 24 Python
Python调用SMTP服务自动发送Email的实现步骤
Feb 07 Python
python3实现无权最短路径的方法
May 12 Python
python内置模块之上下文管理contextlib
Jun 14 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下图片文字混合水印与缩略图实现代码
2009/12/11 PHP
深入php define()函数以及defined()函数的用法详解
2013/06/05 PHP
Thinkphp实现短信验证注册功能
2016/10/18 PHP
PHP常用header头定义代码示例汇总
2020/08/29 PHP
javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)
2012/07/25 Javascript
js加入收藏以及使用Jquery更改透明度
2014/01/26 Javascript
javascript正则匹配汉字、数字、字母、下划线
2014/04/10 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
JavaScript小技巧整理
2015/12/30 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
vue的props实现子组件随父组件一起变化
2016/10/27 Javascript
js实现各种复制到剪贴板的方法(分享)
2016/10/27 Javascript
JavaScript获取服务器端时间的方法
2016/11/29 Javascript
vue 2.0路由之路由嵌套示例详解
2017/05/08 Javascript
Vue.js分页组件实现:diVuePagination的使用详解
2018/01/10 Javascript
微信小程序实现图片翻转效果的实例代码
2019/09/20 Javascript
Jquery使用each函数实现遍历及数组处理
2020/07/14 jQuery
[47:26]完美世界DOTA2联赛 LBZS vs Forest 第二场 11.07
2020/11/09 DOTA
[01:01]2020完美高校联赛(秋)西安落幕
2021/03/11 DOTA
python处理大数字的方法
2015/05/27 Python
python3设计模式之简单工厂模式
2017/10/17 Python
Python离线安装PIL 模块的方法
2019/01/08 Python
Python3.5装饰器典型案例分析
2019/04/30 Python
python 的 scapy库,实现网卡收发包的例子
2019/07/23 Python
python3 mmh3安装及使用方法
2019/10/09 Python
Python实现遗传算法(二进制编码)求函数最优值方式
2020/02/11 Python
利用python中的matplotlib打印混淆矩阵实例
2020/06/16 Python
HTML5 canvas绘制的玫瑰花效果
2014/05/29 HTML / CSS
C#实现启动一个进程
2016/10/01 面试题
家长写给孩子的评语
2014/04/18 职场文书
党在我心中演讲稿
2014/09/02 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
小学体育跳绳课教学反思
2016/02/16 职场文书
pytorch通过训练结果的复现设置随机种子
2021/06/01 Python
SQL Server使用T-SQL语句批处理
2022/05/20 SQL Server
nginx rewrite功能使用场景分析
2022/05/30 Servers