Python OpenCV实现视频分帧


Posted in Python onJune 01, 2019

本文实例为大家分享了Python OpenCV实现视频分帧的具体代码,供大家参考,具体内容如下

# coding=utf-8

import os
import cv2

videos_src_path = "/home/wgp/视频/"
video_formats = [".MP4", ".MOV"]
frames_save_path = "/home/wgp/视频/"
width = 320
height = 240
time_interval = 50


def video2frame(video_src_path, formats, frame_save_path, frame_width, frame_height, interval):
 """
 将视频按固定间隔读取写入图片
 :param video_src_path: 视频存放路径
 :param formats: 包含的所有视频格式
 :param frame_save_path: 保存路径
 :param frame_width: 保存帧宽
 :param frame_height: 保存帧高
 :param interval: 保存帧间隔
 :return: 帧图片
 """
 videos = os.listdir(video_src_path)

 def filter_format(x, all_formats):
 if x[-4:] in all_formats:
  return True
 else:
  return False

 videos = filter(lambda x: filter_format(x, formats), videos)

 for each_video in videos:
 print "正在读取视频:", each_video

 each_video_name = each_video[:-4]
 os.mkdir(frame_save_path + each_video_name)
 each_video_save_full_path = os.path.join(frame_save_path, each_video_name) + "/"

 each_video_full_path = os.path.join(video_src_path, each_video)

 cap = cv2.VideoCapture(each_video_full_path)
 frame_index = 0
 frame_count = 0
 if cap.isOpened():
  success = True
 else:
  success = False
  print("读取失败!")

 while(success):
  success, frame = cap.read()
  print "---> 正在读取第%d帧:" % frame_index, success

  if frame_index % interval == 0:
  resize_frame = cv2.resize(frame, (frame_width, frame_height), interpolation=cv2.INTER_AREA)
  # cv2.imwrite(each_video_save_full_path + each_video_name + "_%d.jpg" % frame_index, resize_frame)
  cv2.imwrite(each_video_save_full_path + "%d.jpg" % frame_count, resize_frame)
  frame_count += 1

  frame_index += 1

 cap.release()


if __name__ == '__main__':
 video2frame(videos_src_path, video_formats, frames_save_path, width, height, time_interval)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现监控linux性能及进程消耗性能的方法
Jul 25 Python
Python编程给numpy矩阵添加一列方法示例
Dec 04 Python
python实现搜索文本文件内容脚本
Jun 22 Python
Python基础之函数的定义与使用示例
Mar 23 Python
在Pycharm中调试Django项目程序的操作方法
Jul 17 Python
一行python实现树形结构的方法
Aug 09 Python
Django中自定义admin Xadmin的实现代码
Aug 09 Python
python文字转语音的实例代码分析
Nov 12 Python
python多线程使用方法实例详解
Dec 30 Python
Python实现i人事自动打卡的示例代码
Jan 09 Python
django迁移文件migrations的实现
Mar 31 Python
Java多线程实现四种方式原理详解
Jun 02 Python
python的set处理二维数组转一维数组的方法示例
May 31 #Python
python整合ffmpeg实现视频文件的批量转换
May 31 #Python
python自动发邮件总结及实例说明【推荐】
May 31 #Python
python实现视频分帧效果
May 31 #Python
使用Python实现跳帧截取视频帧
May 31 #Python
python tools实现视频的每一帧提取并保存
Mar 20 #Python
Python从list类型、range()序列简单认识类(class)【可迭代】
May 31 #Python
You might like
如何在PHP程序中防止盗链
2008/04/09 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
2017/02/04 PHP
PHP微信发送推送消息乱码的解决方法
2019/02/28 PHP
Laravel使用Queue队列的技巧汇总
2019/09/02 PHP
JQuery中serialize() 序列化
2015/03/13 Javascript
JavaScript中标识符提升问题
2015/06/11 Javascript
给before和after伪元素设置js效果的方法
2015/12/04 Javascript
AngularJS报错$apply already in progress的解决方法分析
2017/01/30 Javascript
如何优雅的在一台vps(云主机)上面部署vue+mongodb+express项目
2019/01/20 Javascript
layui禁用侧边导航栏点击事件的解决方法
2019/09/25 Javascript
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
[01:21]DOTA2新纪元-7.0新版本即将开启!
2016/12/11 DOTA
Python操作MongoDB数据库的方法示例
2018/01/04 Python
python3实现SMTP发送邮件详细教程
2018/06/19 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
关于python列表增加元素的三种操作方法
2018/08/22 Python
解决Python2.7中IDLE启动没有反应的问题
2018/11/30 Python
python3发送邮件需要经过代理服务器的示例代码
2019/07/25 Python
Python with语句和过程抽取思想
2019/12/23 Python
Keras使用ImageNet上预训练的模型方式
2020/05/23 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
2020/09/15 Python
详解Css3新特性应用之过渡与动画
2017/01/10 HTML / CSS
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
html5 Canvas画图教程(11)—使用lineTo/arc/bezierCurveTo画椭圆形
2013/01/09 HTML / CSS
入党申请人的自我鉴定
2013/12/01 职场文书
公务员政审单位鉴定材料
2014/05/16 职场文书
个人担保书范文
2014/05/20 职场文书
销售员岗位职责
2014/06/09 职场文书
小学网上祭英烈活动总结
2014/07/05 职场文书
公司委托书格式范文
2014/10/09 职场文书
预备党员自我批评思想汇报
2014/10/10 职场文书
2015年会计人员工作总结
2015/05/22 职场文书
教师节主题班会方案
2015/08/17 职场文书
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
2021/05/25 Python
Win10鼠标轨迹怎么开 Win10显示鼠标轨迹方法
2022/04/06 数码科技
一行Python命令实现批量加水印
2022/04/07 Python