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中映射类型的内建函数和工厂函数
Aug 19 Python
python中正则的使用指南
Dec 04 Python
django框架如何集成celery进行开发
May 24 Python
基于Django模板中的数字自增(详解)
Sep 05 Python
Python实现的网页截图功能【PyQt4与selenium组件】
Jul 12 Python
PyQt 实现使窗口中的元素跟随窗口大小的变化而变化
Jun 18 Python
Python学习笔记之Break和Continue用法分析
Aug 14 Python
Python中的整除和取模实例
Jun 03 Python
Python爬虫实例——爬取美团美食数据
Jul 15 Python
Python通过format函数格式化显示值
Oct 17 Python
matplotlib绘制正余弦曲线图的实现
Feb 22 Python
python爬虫selenium模块详解
Mar 30 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 函数学习简单小结
2010/07/08 PHP
MySQL时间字段究竟使用INT还是DateTime的说明
2012/02/27 PHP
php进程(线程)通信基础之System V共享内存简单实例分析
2019/11/09 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
从阶乘函数对比Javascript和C#的异同
2012/05/31 Javascript
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
jquery实现点击弹出层效果的简单实例
2014/03/03 Javascript
JavaScript中合并数组的N种方法
2014/09/16 Javascript
JS实现文字放大效果的方法
2015/03/03 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
浅析jQuery事件之on()方法绑定多个选择器,多个事件
2016/04/27 Javascript
js点击任意区域弹出层消失实现代码
2016/12/27 Javascript
原生js实现倒计时--2018
2017/02/21 Javascript
JavaScript表单验证完美代码
2017/03/02 Javascript
JavaScript实现简单评论功能
2017/08/17 Javascript
详解vue移动端项目的适配(以mint-ui为例)
2018/08/17 Javascript
vue 修改 data 数据问题并实时显示的方法
2018/08/27 Javascript
ajax跨域访问遇到的问题及解决方案
2019/05/23 Javascript
使用JQuery自动完成插件Auto Complete详解
2019/06/18 jQuery
jQuery 筛选器简单操作示例
2019/10/02 jQuery
jQuery实现点击滚动到指定元素上的方法分析
2020/03/19 jQuery
python在命令行下使用google翻译(带语音)
2014/01/16 Python
Python re模块介绍
2014/11/30 Python
Pythont特殊语法filter,map,reduce,apply使用方法
2016/02/27 Python
Python双向循环链表实现方法分析
2018/07/30 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
python使用scrapy发送post请求的坑
2018/09/04 Python
对python 操作solr索引数据的实例详解
2018/12/07 Python
基于Python爬取爱奇艺资源过程解析
2020/03/02 Python
德国孕妇装和婴童服装网上商店:bellybutton
2018/04/12 全球购物
中东地区最大的奢侈品市场:The Luxury Closet
2019/04/09 全球购物
师范生实习的个人自我鉴定
2013/10/20 职场文书
公司离职证明样本
2014/09/13 职场文书
2014年医院科室工作总结
2014/12/20 职场文书
工伤认定行政答辩状
2015/05/22 职场文书
Python中re模块的元字符使用小结
2022/04/07 Python