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字典基本操作实例分析
Jul 11 Python
非递归的输出1-N的全排列实例(推荐)
Apr 11 Python
1分钟快速生成用于网页内容提取的xslt
Feb 23 Python
Django中反向生成models.py的实例讲解
May 30 Python
pygame游戏之旅 如何制作游戏障碍
Nov 20 Python
python实现远程控制电脑
May 23 Python
django框架实现模板中获取request 的各种信息示例
Jul 01 Python
PyQt5基本控件使用详解:单选按钮、复选框、下拉框
Aug 05 Python
python多线程同步实例教程
Aug 11 Python
Python合并2个字典成1个新字典的方法(9种)
Dec 19 Python
解决pycharm下pyuic工具使用的问题
Apr 08 Python
浅析Python OpenCV三种滤镜效果
Apr 11 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
ThinkPHP中使用ajax接收json数据的方法
2014/12/18 PHP
初识PHP中的Swoole
2016/04/05 PHP
CI框架集成Smarty的方法分析
2016/05/17 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
为指定元素增加样式的js代码
2009/12/09 Javascript
Date对象格式化函数代码
2010/07/17 Javascript
js输出列表实现代码
2010/09/12 Javascript
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
2013/01/09 Javascript
jQuery快速上手:写jQuery与直接写JS的区别详细解析
2013/08/26 Javascript
js实现鼠标感应图片展示的方法
2015/02/27 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
js html5 css俄罗斯方块游戏再现
2016/10/17 Javascript
解决easyui日期时间框ie的兼容的问题
2018/03/01 Javascript
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
5分钟快速看懂ES6中的反射与代理
2019/12/19 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
2020/01/06 Javascript
零基础写python爬虫之抓取糗事百科代码分享
2014/11/06 Python
Python中字符串的常见操作技巧总结
2016/07/28 Python
Python实现多进程共享数据的方法分析
2017/12/04 Python
python实现m3u8格式转换为mp4视频格式
2018/02/28 Python
对python3中pathlib库的Path类的使用详解
2018/10/14 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019/10/24 Python
python的help函数如何使用
2020/06/11 Python
Docker如何部署Python项目的实现详解
2020/10/26 Python
CSS3实现王者匹配时的粒子动画效果
2019/04/12 HTML / CSS
HTML5对手机页面长按会粘贴复制禁用的解决方法
2016/07/19 HTML / CSS
美国高品质个性化珠宝销售网站:Jewlr
2018/05/03 全球购物
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
新春文艺演出主持词
2014/03/27 职场文书
培训班主持词
2014/03/28 职场文书
创优争先心得体会
2014/09/11 职场文书
医生党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
怎样做好公众演讲能力?
2019/08/28 职场文书
Oracle 区块链表创建过程详解
2021/05/15 Oracle
Linux中各个目录的作用与内容
2022/06/28 Servers