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多进程通信Queue、Pipe、Value、Array实例
Nov 21 Python
Python循环语句之break与continue的用法
Oct 14 Python
Python实现快速排序和插入排序算法及自定义排序的示例
Feb 16 Python
python笔记:mysql、redis操作方法
Jun 28 Python
Python变量赋值的秘密分享
Apr 03 Python
基于scrapy的redis安装和配置方法
Jun 13 Python
详解mac python+selenium+Chrome 简单案例
Nov 08 Python
Python单元测试与测试用例简析
Nov 09 Python
Python对象的属性访问过程详解
Mar 05 Python
Python如何生成xml文件
Jun 04 Python
Python优秀开源项目Rich源码解析的流程分析
Jul 06 Python
python模块内置属性概念及实例
Feb 18 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调用JAVA的WebService简单实例
2014/03/11 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
2015/05/13 PHP
CSDN轮换广告图片轮换效果
2007/03/27 Javascript
javascript parseInt 大改造
2009/09/27 Javascript
Javascript 圆角div的实现代码
2009/10/15 Javascript
jQuery 表格插件整理
2010/04/27 Javascript
js 数值转换为3位逗号分隔的示例代码
2014/02/19 Javascript
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
AngularJS内置指令
2015/02/04 Javascript
触屏中的JavaScript事件分析
2015/02/06 Javascript
$.extend 的一个小问题
2015/06/18 Javascript
js设置和获取自定义属性的方法
2016/10/20 Javascript
jQuery生成假加载动画效果
2016/12/01 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
AngularJS实现tab选项卡的方法详解
2017/07/05 Javascript
谈谈为什么你的 JavaScript 代码如此冗长
2019/01/30 Javascript
微信小程序导入Vant报错VM292:1 thirdScriptError的解决方法
2019/08/01 Javascript
Vue 数据响应式相关总结
2021/01/28 Vue.js
[02:40]DOTA2超级联赛专访430 从小就爱玩对抗性游戏
2013/06/18 DOTA
Python实现的百度站长自动URL提交小工具
2014/06/27 Python
python通过cookie模拟已登录状态的初步研究
2016/11/09 Python
python爬虫中get和post方法介绍以及cookie作用
2018/02/08 Python
利用Python正则表达式过滤敏感词的方法
2019/01/21 Python
Tensorflow的常用矩阵生成方式
2020/01/04 Python
Python OrderedDict字典排序方法详解
2020/05/21 Python
python excel多行合并的方法
2020/12/09 Python
美国宠物商店:Wag.com
2016/10/25 全球购物
化工专业应届生求职信
2013/11/08 职场文书
教师党员批评与自我批评发言稿
2014/10/15 职场文书
闪闪的红星观后感
2015/06/08 职场文书
归途列车观后感
2015/06/17 职场文书
安全知识竞赛主持词
2015/06/30 职场文书
致三级跳运动员加油稿
2015/07/21 职场文书
Matplotlib绘制混淆矩阵的实现
2021/05/27 Python
基于JavaScript实现年月日三级联动
2021/06/22 Javascript
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python