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 23 Python
Python对象的深拷贝和浅拷贝详解
Aug 25 Python
用Python的Django框架编写从Google Adsense中获得报表的应用
Apr 17 Python
python查询sqlite数据表的方法
May 08 Python
Python 制作糗事百科爬虫实例
Sep 22 Python
如何利用Python模拟GitHub登录详解
Jul 15 Python
python用match()函数爬数据方法详解
Jul 23 Python
Python closure闭包解释及其注意点详解
Aug 28 Python
Python在OpenCV里实现极坐标变换功能
Sep 02 Python
浅谈python量化 双均线策略(金叉死叉)
Jun 03 Python
Python rabbitMQ如何实现生产消费者模式
Aug 24 Python
PyCharm 光标变成黑块的解决方式
Feb 06 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与javascript的两种交互方式
2006/10/09 PHP
ThinkPHP框架实现session跨域问题的解决方法
2014/07/01 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
symfony2.4的twig中date用法分析
2016/03/18 PHP
Smarty高级应用之缓存操作技巧分析
2016/05/14 PHP
linux下php上传文件注意事项
2016/06/11 PHP
Yii+upload实现AJAX上传图片的方法
2016/07/13 PHP
js表数据排序 sort table data
2009/02/18 Javascript
超越Jquery_01_isPlainObject分析与重构
2010/10/20 Javascript
javascript校验价格合法性实例(必须输入2位小数)
2014/05/05 Javascript
Bootstrap每天必学之栅格系统(布局)
2015/11/25 Javascript
javascript实现倒计时跳转页面
2016/01/17 Javascript
JS中dom0级事件和dom2级事件的区别介绍
2016/05/05 Javascript
详解JavaScript中this关键字的用法
2016/05/26 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
2016/06/21 Javascript
jquery ajax异步提交表单数据的方法
2017/10/27 jQuery
详解weex默认webpack.config.js改造
2018/01/08 Javascript
JS实现的集合去重,交集,并集,差集功能示例
2018/03/13 Javascript
详解Vue-cli中的静态资源管理(src/assets和static/的区别)
2018/06/19 Javascript
使用js实现将后台传入的json数据放在前台显示
2018/08/06 Javascript
用vuex写了一个购物车H5页面的示例代码
2018/12/04 Javascript
JavaScript实现滑块验证解锁
2021/01/07 Javascript
Python使用Supervisor来管理进程的方法
2015/05/28 Python
python实现对列表中的元素进行倒序打印
2019/11/23 Python
python中数据库like模糊查询方式
2020/03/02 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
2020/05/22 Python
python属于解释语言吗
2020/06/11 Python
python中字典增加和删除使用方法
2020/09/30 Python
使用CSS3的appearance属性改变元素的外观的方法
2015/12/12 HTML / CSS
html5与css3小应用
2013/04/03 HTML / CSS
洛杉矶时尚女装系列:J.ING US
2019/03/17 全球购物
工作迟到检讨书
2014/02/21 职场文书
热爱祖国的演讲稿
2014/05/04 职场文书
2014最新股权信托合同协议书
2014/11/18 职场文书
英文投诉信格式
2015/07/03 职场文书
Vue操作Storage本地化存储
2022/04/29 Vue.js