python实现视频分帧效果


Posted in Python onMay 31, 2019

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

import cv2 
vidcap = cv2.VideoCapture('005.avi') 
success,image = vidcap.read() 
count = 0 
success = True 
while success: 
 success,image = vidcap.read() 
 cv2.imwrite("frame%d.jpg" % count, image)  # save frame as JPEG file 
 if cv2.waitKey(10) == 27:      
  break 
 count += 1

python tools:将视频的每一帧提取并保存

# 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 相关文章推荐
10个易被忽视但应掌握的Python基本用法
Apr 01 Python
在Python的Tornado框架中实现简单的在线代理的教程
May 02 Python
Python3实现从文件中读取指定行的方法
May 22 Python
Python3中的2to3转换工具使用示例
Jun 12 Python
100行Python代码实现自动抢火车票(附源码)
Jan 11 Python
Python+PyQT5的子线程更新UI界面的实例
Jun 14 Python
Django后端接收嵌套Json数据及解析详解
Jul 17 Python
Pytorch实现GoogLeNet的方法
Aug 18 Python
python-sys.stdout作为默认函数参数的实现
Feb 21 Python
使用pyecharts1.7进行简单的可视化大全
May 17 Python
为什么说python适合写爬虫
Jun 11 Python
七个Python必备的GUI库
Apr 27 Python
使用Python实现跳帧截取视频帧
May 31 #Python
python tools实现视频的每一帧提取并保存
Mar 20 #Python
Python从list类型、range()序列简单认识类(class)【可迭代】
May 31 #Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
May 31 #Python
Python可变和不可变、类的私有属性实例分析
May 31 #Python
python实现批量视频分帧、保存视频帧
May 31 #Python
Python内置random模块生成随机数的方法
May 31 #Python
You might like
骨王战斗力在公会成员中排不进前五,却当选了会长,原因竟是这样
2020/03/02 日漫
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
索尼SONY ICF-7600A(W)电路分析
2021/03/01 无线电
解决中英文字符串长度问题函数
2007/01/16 PHP
举例详解PHP脚本的测试方法
2015/08/05 PHP
php发送短信验证码完成注册功能
2015/11/24 PHP
PHP中散列密码的安全性分析
2019/07/26 PHP
PHP 观察者模式深入理解与应用分析
2019/09/25 PHP
基于Vue实现tab栏切换内容不断实时刷新数据功能
2017/04/13 Javascript
Vue form 表单提交+ajax异步请求+分页效果
2017/04/22 Javascript
vue修改vue项目运行端口号的方法
2017/08/04 Javascript
AngularJS中filter的使用实例详解
2017/08/25 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
2017/09/14 Javascript
webpack多入口文件页面打包配置详解
2018/01/09 Javascript
ajax请求+vue.js渲染+页面加载的示例
2018/02/11 Javascript
微信小程序实现全局搜索代码高亮的示例
2018/03/30 Javascript
webpack4 处理SCSS的方法示例
2018/09/03 Javascript
详解js访问对象的属性和方法
2018/10/25 Javascript
angular6 填坑之sdk的方法
2018/12/27 Javascript
微信内置浏览器图片查看器的代码实例
2019/10/08 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
Python pandas实现excel工作表合并功能详解
2019/08/29 Python
Python基于进程池实现多进程过程解析
2020/04/30 Python
Python pip使用超时问题解决方案
2020/08/03 Python
Window10上Tensorflow的安装(CPU和GPU版本)
2020/12/15 Python
详解HTML5.2版本带来的修改
2020/05/06 HTML / CSS
alice McCALL官网:澳大利亚时尚品牌
2020/11/16 全球购物
eHarmony英国:全球领先的认真恋爱约会平台之一
2020/11/16 全球购物
四年的个人工作自我评价
2013/12/10 职场文书
公司部门司机岗位职责
2014/01/03 职场文书
委托函范文
2015/01/29 职场文书
2015年世界无烟日演讲稿
2015/03/18 职场文书
JUnit5常用注解的使用
2021/07/02 Java/Android
一文搞懂Python Sklearn库使用
2021/08/23 Python
微信小程序 根据不同用户切换不同TabBar
2022/04/21 Javascript