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 相关文章推荐
TensorFlow安装及jupyter notebook配置方法
Sep 08 Python
利用信号如何监控Django模型对象字段值的变化详解
Nov 27 Python
Python基于PyGraphics包实现图片截取功能的方法
Dec 21 Python
Python 查看文件的读写权限方法
Jan 23 Python
对Python中的@classmethod用法详解
Apr 21 Python
Python3.x爬虫下载网页图片的实例讲解
May 22 Python
利用Python将数值型特征进行离散化操作的方法
Nov 06 Python
解决django后台样式丢失,css资源加载失败的问题
Jun 11 Python
在windows下使用python进行串口通讯的方法
Jul 02 Python
django 取消csrf限制的实例
Mar 13 Python
Python classmethod装饰器原理及用法解析
Oct 17 Python
基于Python实现股票收益率分析
Apr 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中的PDO类
2015/07/06 PHP
PHP自定义函数获取URL中一级域名的方法
2016/08/23 PHP
TP3.2.3框架文件上传操作实例详解
2020/01/23 PHP
基于jquery的button默认enter事件(回车事件)。
2011/05/18 Javascript
jsPDF生成pdf后在网页展示实例
2014/01/16 Javascript
javascript实现的右下角弹窗实例
2015/04/24 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
2016/01/22 Javascript
JavaScript中文件上传API详解
2016/04/01 Javascript
详细分析JS函数去抖和节流
2017/12/05 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
2018/01/25 Javascript
基于jQuery使用Ajax动态执行模糊查询功能
2018/07/05 jQuery
Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
2018/09/15 Javascript
在vue项目中,将juery设置为全局变量的方法
2018/09/25 Javascript
JS中的算法与数据结构之二叉查找树(Binary Sort Tree)实例详解
2019/08/16 Javascript
JS表格的动态操作完整示例
2020/01/13 Javascript
vue-router为激活的路由设置样式操作
2020/07/18 Javascript
Python中实现常量(Const)功能
2015/01/28 Python
python使用post提交数据到远程url的方法
2015/04/29 Python
Python中文竖排显示的方法
2015/07/28 Python
利用Opencv中Houghline方法实现直线检测
2018/02/11 Python
Python字符串的常见操作实例小结
2019/04/08 Python
利用anaconda保证64位和32位的python共存
2021/03/09 Python
python opencv实现证件照换底功能
2019/08/19 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
2020/01/21 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
2020/03/24 Python
浅谈Python中的字符串
2020/06/10 Python
基于Python的一个自动录入表格的小程序
2020/08/05 Python
德国便宜的宠物店:Brekz.de
2020/10/23 全球购物
2014国庆节标语口号
2014/09/19 职场文书
客户经理岗位职责
2015/01/31 职场文书
2015年机关后勤工作总结
2015/05/26 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
2021/03/31 jQuery
Python实现生活常识解答机器人
2021/06/28 Python
Redis sentinel哨兵集群的实现步骤
2022/07/15 Redis