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是编译运行的验证方法
Jan 30 Python
Python实现数据库编程方法详解
Jun 09 Python
手把手教你python实现SVM算法
Dec 27 Python
dataframe设置两个条件取值的实例
Apr 12 Python
Python利用字典破解WIFI密码的方法
Feb 27 Python
python opencv实现图像边缘检测
Apr 29 Python
PyQt5下拉式复选框QComboCheckBox的实例
Jun 25 Python
Django连接数据库并实现读写分离过程解析
Nov 13 Python
使用keras实现孪生网络中的权值共享教程
Jun 11 Python
python如何变换环境
Jul 21 Python
Python requests上传文件实现步骤
Sep 15 Python
Django model class Meta原理解析
Nov 14 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
PHP daddslashes 使用方法介绍
2012/10/26 PHP
在yii中新增一个用户验证的方法详解
2013/06/20 PHP
PHP输出缓冲控制Output Control系列函数详解
2015/07/02 PHP
PHP正则表达式过滤html标签属性(DEMO)
2016/05/04 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
PHP 7.4 新语法之箭头函数实例详解
2019/05/09 PHP
JQuery 浮动导航栏实现代码
2009/08/27 Javascript
表格 隔行换色升级版
2009/11/07 Javascript
javascript获取当前的时间戳的方法汇总
2015/07/26 Javascript
基于javascript实现listbox左右移动
2016/01/29 Javascript
AngularJS入门教程之AngularJS模型
2016/04/18 Javascript
Angular.JS中的this指向详解
2017/05/17 Javascript
nodejs 简单实现动态html的方法
2018/05/12 NodeJs
详解使用jest对vue项目进行单元测试
2018/09/07 Javascript
Vue实现表格批量审核功能实例代码
2019/05/28 Javascript
Vue函数式组件的应用实例详解
2019/08/30 Javascript
javascript 设计模式之享元模式原理与应用详解
2020/04/08 Javascript
Vue中computed和watch有哪些区别
2020/12/19 Vue.js
jQuery实现增删改查
2020/12/22 jQuery
[03:07]2015国际邀请赛选手档案EHOME.rOtK 是什么让他落泪?
2015/07/31 DOTA
Python实现将DOC文档转换为PDF的方法
2015/07/25 Python
Python实现JSON反序列化类对象的示例
2018/01/31 Python
使用Python监视指定目录下文件变更的方法
2018/10/15 Python
python读取各种文件数据方法解析
2018/12/29 Python
python FTP批量下载/删除/上传实例
2019/12/22 Python
Python itertools.product方法代码实例
2020/03/27 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
2020/10/15 Python
python+requests实现接口测试的完整步骤
2020/10/27 Python
JavaScript实现前端网页版倒计时
2021/03/24 Javascript
工程资料员岗位职责
2014/03/10 职场文书
玄武湖导游词
2015/02/05 职场文书
党员个人自我评价
2015/03/03 职场文书
因个人工作失误检讨书
2019/06/21 职场文书
详解python网络进程
2021/06/15 Python
Spring mvc是如何实现与数据库的前后端的连接操作的?
2021/06/30 Java/Android
Python编程中内置的NotImplemented类型的用法
2022/03/23 Python