python实现视频分帧效果

 更新时间:2019年05月31日 11:21:16   作者:万三豹  
这篇文章主要为大家详细介绍了python实现视频分帧效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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程序编译与反编译问题

    这篇文章主要介绍了Python程序编译与反编译问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Python urlopen 使用小示例

    Python urlopen 使用小示例

    打开一个网页获取所有的内容、获取Http头、使用代理等小结
    2008-09-09
  • 如何基于Python实现word文档重新排版

    如何基于Python实现word文档重新排版

    这篇文章主要介绍了如何基于Python实现word文档重新排版,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • 如何理解python接口自动化之logging日志模块

    如何理解python接口自动化之logging日志模块

    代码需要经历开发、调试、审查、测试或者上线等不同阶段,在“测试”时,可能只想看警告和错误信息,然而在“调试”时,可能还想看到跟调试相关的信息。如果想打印出使用的模块以及代码运行的时间,那么代码很容易变得混乱。使用logging日志模块,就能很容易地解决
    2021-06-06
  • Python基于FTP模块实现ftp文件上传操作示例

    Python基于FTP模块实现ftp文件上传操作示例

    这篇文章主要介绍了Python基于FTP模块实现ftp文件上传操作,结合实例形式分析了Python引入ftp模块及相关设置、文件传输等操作技巧,需要的朋友可以参考下
    2018-04-04
  • python 不以科学计数法输出的方法

    python 不以科学计数法输出的方法

    今天小编就为大家分享一篇python 不以科学计数法输出的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • python3实现表白神器

    python3实现表白神器

    这篇文章主要为大家详细介绍了python3实现表白神器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • Django使用rest_framework写出API

    Django使用rest_framework写出API

    这篇文章主要介绍了Django使用rest_framework写出API,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • python从ftp下载数据保存实例

    python从ftp下载数据保存实例

    这篇文章主要介绍了python从ftp下载数据到本地保存的实例代码方法,大家参考使用吧
    2013-11-11
  • Python办公自动化之自动化清理数据和自动化系统命令详解

    Python办公自动化之自动化清理数据和自动化系统命令详解

    这篇文章主要为大家详细介绍了Python办公自动化中自动化清理数据和自动化系统命令的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2024-01-01

最新评论