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 列表list使用介绍
Nov 30 Python
Python Matplotlib库入门指南
May 18 Python
Python使用自带的ConfigParser模块读写ini配置文件
Jun 26 Python
Python代码实现KNN算法
Dec 20 Python
django表单实现下拉框的示例讲解
May 29 Python
python实现超简单的视频对象提取功能
Jun 04 Python
python如何解析配置文件并应用到项目中
Jun 27 Python
python接口调用已训练好的caffe模型测试分类方法
Aug 26 Python
python 扩展print打印文件路径和当前时间信息的实例代码
Oct 11 Python
python快速排序的实现及运行时间比较
Nov 22 Python
关于pandas的离散化,面元划分详解
Nov 22 Python
python实现扫雷游戏
Mar 03 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
解决phpmyadmin中文乱码问题。。。
2007/01/18 PHP
PHP添加Xdebug扩展的方法
2014/02/12 PHP
PHP高手需要要掌握的知识点
2014/08/21 PHP
php实现二进制和文本相互转换的方法
2015/04/18 PHP
基于jQuery的公告无限循环滚动实现代码
2012/05/11 Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
2013/08/08 Javascript
JavaScript的事件绑定(方便不支持js的时候)
2013/10/01 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
2014/04/03 Javascript
JavaScript代码编写中各种各样的坑和填坑方法
2014/06/06 Javascript
谈谈impress.js初步理解
2015/09/09 Javascript
JavaScript获取浏览器信息的方法
2015/11/20 Javascript
JavaScript中Form表单技术汇总(推荐)
2016/06/26 Javascript
微信js-sdk分享功能接口常用逻辑封装示例
2016/10/13 Javascript
jQuery扩展实现text提示还能输入多少字节的方法
2016/11/28 Javascript
nodejs 搭建简易服务器的图文教程(推荐)
2017/07/18 NodeJs
2种在vue项目中使用百度地图的简单方法
2018/09/28 Javascript
Python基础教程之tcp socket编程详解及简单实例
2017/02/23 Python
学习Python selenium自动化网页抓取器
2018/01/20 Python
15行Python代码带你轻松理解令牌桶算法
2018/03/21 Python
在自动化中用python实现键盘操作的方法详解
2019/07/19 Python
python文字转语音的实例代码分析
2019/11/12 Python
浅谈python的elementtree模块处理中文注意事项
2020/03/06 Python
Python使用扩展库pywin32实现批量文档打印实例
2020/04/09 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
2020/06/18 Python
浅谈pytorch中的BN层的注意事项
2020/06/23 Python
html5 canvas实现跟随鼠标旋转的箭头
2016/03/11 HTML / CSS
大学学年自我鉴定
2013/10/28 职场文书
2015年元旦文艺汇演主持词
2014/03/26 职场文书
单位租车协议书
2015/01/29 职场文书
2015安全保卫工作总结
2015/04/25 职场文书
社区党支部公开承诺书
2015/04/29 职场文书
经营场所使用证明
2015/06/19 职场文书
Vue项目中如何封装axios(统一管理http请求)
2021/05/02 Vue.js
php双向队列实例讲解
2021/11/17 PHP
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis
python使用shell脚本创建kafka连接器
2022/04/29 Python