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 相关文章推荐
python UNIX_TIMESTAMP时间处理方法分析
Apr 18 Python
Django中url的反向查询的方法
Mar 14 Python
使用Python从零开始撸一个区块链
Mar 14 Python
Python使用logging模块实现打印log到指定文件的方法
Sep 05 Python
python调用java的jar包方法
Dec 15 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
Jun 19 Python
基于Django框架的权限组件rbac实例讲解
Aug 31 Python
解决pytorch报错:AssertionError: Invalid device id的问题
Jan 10 Python
Python实现检测文件的MD5值来查找重复文件案例
Mar 12 Python
Python实现加密接口测试方法步骤详解
Jun 05 Python
Python实现LR1文法的完整实例代码
Oct 25 Python
Python预测分词的实现
Jun 18 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
基于CakePHP实现的简单博客系统实例
2015/06/28 PHP
PHP中字符串长度的截取用法示例
2017/01/12 PHP
php 中phar包的使用教程详解
2018/10/26 PHP
php实现对文件压缩简单的方法
2019/09/29 PHP
javascript 面向对象编程 聊聊对象的事
2009/09/17 Javascript
jquery 操作DOM案例代码分享
2012/04/05 Javascript
用js实现trim()的解决办法
2013/04/16 Javascript
在javascript中如何得到中英文混合字符串的长度
2014/01/17 Javascript
extjs每个组件要设置唯一的ID否则会出错
2014/06/15 Javascript
jQuery 全选 全不选 事件绑定的实现代码
2017/01/23 Javascript
js 获取图像缩放后的实际宽高,位置等信息
2017/03/07 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
jQuery remove()过滤被删除的元素(推荐)
2017/07/18 jQuery
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
jQuery实现的简单无刷新评论功能示例
2017/11/08 jQuery
element-ui 表格实现单元格可编辑的示例
2018/02/26 Javascript
echarts设置图例颜色和地图底色的方法实例
2018/08/01 Javascript
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
2019/02/02 NodeJs
详解vue在项目中使用百度地图
2019/03/26 Javascript
详解Jest结合Vue-test-utils使用的初步实践
2019/06/27 Javascript
Vue使用lodop实现打印小结
2019/07/06 Javascript
基于canvas实现手写签名(vue)
2020/05/21 Javascript
[04:45]上海特级锦标赛主赛事第三日TOP10
2016/03/05 DOTA
Python中捕捉详细异常信息的代码示例
2014/09/18 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
python 解决flask uwsgi 获取不到全局变量的问题
2019/12/22 Python
德国网上宠物店:Zoobio
2018/05/23 全球购物
德国香水、化妆品和护理产品网上商店:Parfumdreams
2018/09/26 全球购物
Wiggle美国:英国骑行、跑步、游泳、铁人三项商店
2018/10/27 全球购物
局域网定义和特性
2016/01/23 面试题
EJB3推出JPA的原因
2013/10/16 面试题
毕业设计说明书
2014/05/07 职场文书
解除劳动关系协议书2篇
2014/11/28 职场文书
贪污检举信范文
2015/03/02 职场文书
2015年精神文明建设工作总结
2015/04/21 职场文书
USB TYPE-C 或将成为所有智能手机充电标准
2022/04/21 数码科技