python实现批量视频分帧、保存视频帧

本篇博客介绍利用python脚本实现视频分帧,并将每一帧保存到本地。主要基于opencv包来实现,在运行代码前确保opencv包已正确安装。下面是主要代码:

import os
import cv2

videos_src_path = '/home/shao/violence_detection_code/Movies_Dataset/fights'
videos_save_path = '/home/shao/violence_detection_code/Movies_Dataset/fights_pic'

videos = os.listdir(videos_src_path)
videos.sort(key=lambda x:int(x[5:-4]))

i = 1

for each_video in videos:
 if not os.path.exists(videos_save_path + '/' + str(i)):
 os.mkdir(videos_save_path + '/' + str(i))
 each_video_save_full_path = os.path.join(videos_save_path,str(i))+'/'
 each_video_full_path = os.path.join(videos_src_path,each_video)
 cap = cv2.VideoCapture(each_video_full_path)
 frame_count = 1
 success = True

 while(success):
 success,frame = cap.read()
 if success==True:
  cv2.imwrite(each_video_save_full_path + "frame%d.jpg" % frame_count,
 frame)
 frame_count = frame_count + 1
 i = i + 1

 cap.release()

代码注释:

1.第1,2行完成导入几个需要的包;

2.第4,5行分别是待分帧的原始视频路径、分帧后需要保存视频帧的文件路径;这里需要注意的是,我写的是文件夹,也就是说在/home/shao/violence_detection_code/Movies_Dataset/fights目录下有多个视频XXX.avi,XXX.avi等形式;如果只需要处理单个视频的话,可以稍微改一下即可。

3.第7行表示将所有视频的文件名存到videos中,第8行是可选项,表示对fights文件夹下的视频进行排序,x[5:-4]表示按照文件名第5个字符到倒数第4个字符之间的符号排序,因为我的视频是newfi1.avi,newfi2.avi……的格式,我想实现的是按照数字1,2,3的顺序提取视频帧;

4.之后的代码就是循环处理每个视频,将每个视频的视频帧保存到文件夹中。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python通过ffmgep从视频中抽帧的方法

    如下所示: ffmpeg中文文档:http://linux.51yip.com/search/ffmpeg ffmpeg -i test_baofeng.wmv -y -f image2 -ss 00:00:03 -vframes 1 myframe.jpg ffmpeg -i test.mp4 -y -f mjpeg -ss 3 -t 1 test1.jpg -f fmt 强迫采用格式fmt -I filename 输入文件 -y 覆盖输出文件 -t duration 设置纪录时间 hh:mm

  • python使用opencv按一定间隔截取视频帧

    关于opencv OpenCV 是 Intel 开源计算机视觉库 (Computer Version) .它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法. OpenCV 拥有包括 300 多个 C 函数的跨平台的中.高层 API .它不依赖于其它的外部库 -- 尽管也可以使用某些外部库. OpenCV 对非商业应用和商业应用都是免费 的.同时 OpenCV 提供了对硬件的访问,可以直接访问摄像头,并且 opencv 还提供了一个简单的 GUI(graph

  • python 读取视频,处理后,实时计算帧数fps的方法

    实时计算每秒的帧数 cap = cv2.VideoCapture("DJI_0008.MOV") #cap = cv2.VideoCapture(0) # Define the codec and create VideoWriter object #fourcc = cv2.cv.FOURCC(*'XVID') fourcc = cv2.VideoWriter_fourcc(*'XVID') out = cv2.VideoWriter('output1.avi', fourcc, 2

  • Python OpenCV对本地视频文件进行分帧保存的实例

    如下所示: # 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_p

  • python读取视频流提取视频帧的两种方法

    本文实例为大家分享了python读取视频流提取视频帧的具体代码,供大家参考,具体内容如下 方法一:通过imageio库和skimage库 1. 安装环境: pip install imageio pip install skimage 这时候会报错Please install the `scikit-image` package (instead of `skimage`) 所以按照提示操作即可: pip install scikit-image 环境安装成功. 2.通过python安装ffmp

  • 对python cv2批量灰度图片并保存的实例讲解

    如下所示: import cv2 #循环灰度图片并保存 def grayImg(): for x in range(1,38): #读取图片 img = cv2.imread("C:\\Users\\lyl\\Desktop\\new_dahuoji\\img2\\{}.jpg".format(str(x))) GrayImage=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #保存灰度后的新图片 cv2.imwrite("C:\\Users\\l

  • Python 超简洁且详细爬取西瓜视频案例

    一.写在前面 真的,为什么别人发游戏这么多人看,我发了两次了加起来才一百个. 算了算了,不整游戏了,反正你们也不爱看~ 今天来试试把头条上扭腰上热门的那些妹子爬一爬,不知道我顶不顶得住~ 二.准备工作 1.使用的环境 python 3.8pycharm 2021.2 专业版 2.要用的第三方模块 seleniumrequestsparsel 三.大致流程 鉴于你们不喜欢我啰嗦,但是流程呢,我还是要给你们写出来,所以我就单独把它列出来了. 1.网站分析(明确需求) 在视频网页源代码当中找到 emb

  • Python 超简洁且详细爬取西瓜视频案例

    一.写在前面 真的,为什么别人发游戏这么多人看,我发了两次了加起来才一百个. 算了算了,不整游戏了,反正你们也不爱看~ 今天来试试把头条上扭腰上热门的那些妹子爬一爬,不知道我顶不顶得住~ 二.准备工作 1.使用的环境 python 3.8 pycharm 2021.2 专业版 2.要用的第三方模块 selenium requests parsel 三.大致流程 鉴于你们不喜欢我啰嗦,但是流程呢,我还是要给你们写出来,所以我就单独把它列出来了. 1.网站分析(明确需求) 在视频网页源代码当中找到

  • python实现批量视频分帧、保存视频帧

    本篇博客介绍利用python脚本实现视频分帧,并将每一帧保存到本地.主要基于opencv包来实现,在运行代码前确保opencv包已正确安装.下面是主要代码: import os import cv2 videos_src_path = '/home/shao/violence_detection_code/Movies_Dataset/fights' videos_save_path = '/home/shao/violence_detection_code/Movies_Dataset/fig

  • 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 a

  • Python将视频或者动态图gif逐帧保存为图片的方法

    本文是基于opencv将视频和动态图gif保存为图像帧.可以根据输入视频格式的不同,修改第21行. 对动图的处理不同于视频,PIL库包含对图像序列的基本支持.当打开gif图像时,自动加载第一帧.当图像读取完成时,抛出EOFError异常.我们可以使用seek()与tell()函数完成图像帧的读取. 本代码的前部分是对文件的读取.数据集文件结构如下: |--datasets |--action1 action1_1.gif action1_2.gif ...... |--action2 actio

  • python 视频逐帧保存为图片的完整实例

    我就废话不多说了,直接上代码吧! import cv2 import os def save_img(): video_path = r'F:\test\video1/' videos = os.listdir(video_path) for video_name in videos: file_name = video_name.split('.')[0] folder_name = video_path + file_name os.makedirs(folder_name,exist_ok

  • 基于Python实现批量保存视频到本地

    目录 序言 开始代码 获取视频的代码 自动评论 自动点赞 自动关注 序言 是我太久没发了吗?昨天没人看,那么今天来点特别的~ 不仅把好看的视频全部pa下来,咱们还要实现自动评论.点赞.关注三连~ 宝,你也可以顺手给我个三连吗?给你个摸摸大~ 开始代码 获取视频的代码 import requests # 发送请求 第三方模块(第三方应用 pip) import re # 伪装 # 1. 选中要替换的代码 # 2. ctrl + R # 3. 第一个框(.*?): (.*) # 4. 在第二个框里面

随机推荐