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网络编程实例简析
Sep 26 Python
Python 中的 else详解
Apr 23 Python
详解python的ORM中Pony用法
Feb 09 Python
python删除列表元素的三种方法(remove,pop,del)
Jul 22 Python
python实现电子书翻页小程序
Jul 23 Python
Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程
Mar 07 Python
Python dict和defaultdict使用实例解析
Mar 12 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
Jun 17 Python
解决Python 函数声明先后顺序出现的问题
Sep 02 Python
Python中使用aiohttp模拟服务器出现错误问题及解决方法
Oct 31 Python
Django URL参数Template反向解析
Nov 24 Python
Python 用__new__方法实现单例的操作
Dec 11 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
?生?D片??C字串
2006/12/06 PHP
PHP set_error_handler()函数使用详解(示例)
2013/11/12 PHP
php自动识别文件编码并转换为UTF-8的方法
2014/06/12 PHP
php启用sphinx全文搜索的实现方法
2014/12/24 PHP
PHP时间和日期函数详解
2015/05/08 PHP
解析PHP之提取多维数组指定列的方法
2017/01/03 PHP
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
Bootstrap在线电子商务网站实战项目5
2016/10/14 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
2017/02/14 Javascript
jQuery实现返回顶部按钮和scroll滚动功能[带动画效果]
2017/07/05 jQuery
微信小程序实现日历小功能
2020/11/18 Javascript
在Python中实现贪婪排名算法的教程
2015/04/17 Python
详解Python中 __get__和__getattr__和__getattribute__的区别
2016/06/16 Python
分享vim python缩进等一些配置
2018/07/02 Python
python 字符串只保留汉字的方法
2018/11/16 Python
Django REST framework 分页的实现代码
2019/06/19 Python
Python叠加两幅栅格图像的实现方法
2019/07/05 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
2019/07/23 Python
Selenium alert 弹窗处理的示例代码
2020/08/06 Python
python 提高开发效率的5个小技巧
2020/10/19 Python
Python中读取文件名中的数字的实例详解
2020/12/25 Python
CSS3 边框效果
2019/11/04 HTML / CSS
澳大利亚头发和美容产品购物网站:OZ Hair & Beauty
2020/03/27 全球购物
前厅收银主管岗位职责
2014/02/04 职场文书
个人充满哲理的自我评价
2014/02/20 职场文书
社团活动总结
2014/04/28 职场文书
珍惜资源保护环境的建议书
2014/05/14 职场文书
我为党旗添光彩演讲稿
2014/09/10 职场文书
暑期社会实践证明书
2014/11/17 职场文书
文明倡议书
2015/01/19 职场文书
工作失误检讨书
2015/01/26 职场文书
2015年新教师工作总结
2015/04/28 职场文书
Python趣味挑战之用pygame实现简单的金币旋转效果
2021/05/31 Python
Redis中缓存穿透/击穿/雪崩问题和解决方法
2021/12/04 Redis
Python if else条件语句形式详解
2022/03/24 Python
nginx lua 操作 mysql
2022/05/15 Servers