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

waitKey()函数详解

1--waitKey()--这个函数是在一个给定的时间内(单位ms)等待用户按键触发;如果用户没有按下 键,则接续等待(循环)

2--如下所示: while(1){ if(waitKey(100)==27)break; } 在这个程序中,我们告诉OpenCv等待用户触发事件,等待时间为100ms,如果在这个时间段内, 用户按下ESC(ASCII码为27),则跳出循环,否则,不跳出循环

3--如果设置waitKey(0),则表示程序会无限制的等待用户的按键事件

videoCapture.read() 函数,第一个返回值为是否成功获取视频帧,第二个返回值为返回的视频帧:

success, frame = videoCapture.read()
cv2.VideoWriter(filename, fourcc, fps, framesize, isColor)–视频写入/出

使用这个函数可以创建一个用于写出视频文件的句柄,第一个参数为写出的视频文件的名字/路径,第二个参数为写出视频的编码格式,

第三个参数为写出视频的fps值,第四个参数为写出视频的画面大小,最后一个参数为设置写出视频是否为彩色视频,可以省略,默认为彩色。

以上这篇python 实现视频 图像帧提取就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 使用python-opencv读取视频,计算视频总帧数及FPS的实现

    如下所示: 1.计算总帧数 import os import cv2 video_cap = cv2.VideoCapture('ffmpeg_test.avi') frame_count = 0 all_frames = [] while(True): ret, frame = video_cap.read() if ret is False: break all_frames.append(frame) frame_count = frame_count + 1 # The value be

  • 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-视频分帧&多帧合成视频实例

    我就废话不多说了,直接上代码吧! 1.视频分帧: 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 c

  • python实现将视频按帧读取到自定义目录

    如题,首先读取视频路径,其次根据视频名称创建对应的文件夹,再逐帧将视频帧读入. import cv2 import argparse import sys import os parser = argparse.ArgumentParser(description='tranfer the vedio to img.') parser.add_argument('-m', '--mode', choices=['folder', 'url'], default='folder') parser.

  • 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实现视频读取和转化图片

    1)视频读取 import cv2 cap = cv2.VideoCapture('E:\\Video\\20000105_224116.dav') #地址 while(True): ret,frame = cap.read() if(ret): # gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) cv2.imshow('input',frame) else: break if cv2.waitKey(1)==27: break cap.release

  • 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) == 2

  • 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+opencv实现视频抽帧示例代码

    1.数据集简述: 虽然有主流庞大的COCO.VOC数据集,但是科研人员仍需要特殊领域要求的数据集,所以采用人工实地采集的方式进行收集数据集图像:通过拍照收集图像过于繁琐,所以通常是将摄像头无规则的移动旋转以及远近拉缩,进而录制视频:再通过视频抽帧的方式得到大量的图像,再将这些图像进行人工标注处理. 博主通过一个水下录制视频为例子,当这类图像在网上鲜有存在时,要求有关技术人员进行实拍采集,下图即为采集得到的视频. 为了避免不符合项目要求的数据增强,博主要求技术人员在录制视频时最大程度地让摄像头进行

  • 基于Python实现视频的人脸融合功能

    ​ 图片提取 为了方便技术展示,我们选取素材为演员杨紫的一段演讲视频,用例仅为技术交流演示使用,不针对任何指定人. 为达到我们AI换脸的目的,我们首先需要将这段视频逐帧提取成照片 def vedio_2_pic(self,file,save_path): """ 逐帧取照片 file:视频的位置 save_path:保存路径 """ # 读取视频 video = cv2.VideoCapture(file) # 获取视频帧率 fps = vide

  • python tools实现视频的每一帧提取并保存

    Preface 最近在做 video caption 相关,要处理大量视频. 今天碰到一个问题,就是要将 YoutubeClips 数据集 中的 avi 格式的视频,将其视频中的每一帧提取出来.之后用 High accuracy optical flow estimation based on a theory for warping提出的 Optical Flow(光流),提取运动的光流特征. Method 1 方法 1 是最简单的,用 FFmpeg工具来完成. 具体的网上有很多这方面的资料,

  • Python如何将图像音视频等资源文件隐藏在代码中(小技巧)

    下午有同学Python学习群里说,使用pyinstaller打包源码时,因为代码中使用了图像.音频.视频等资源文件,无法将程序打包成单一的可执行文件.有没有方法将这些资源文件按保存在代码中呢?我想了一下,应该是可以的.于是乎,花了一个小时,写出了下面的代码,算是抛砖引玉吧. 这段代码可以将二进制文件转存为python脚本文件,供其他脚本引用.代码最后附有使用的例子,演示用的图片可以随便照一张.除了转存二进制数据,还提供了两个方法: get_fp():返回二进制的IO对象(类文件对象) save(

  • 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将视频或者动态图gif逐帧保存为图片的方法

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

  • python-opencv实现视频指定帧数间隔图像的保存功能

    使用opencv-python,把一段视频中指定帧频间隔的图像保存到新建的文件中 首先安装好python ,配置好opencv-python # 导入所有必要的库 import cv2 import os # 从指定的路径读取视频 cam = cv2.VideoCapture("F:/video1.mp4") try: # 创建名为data的文件夹 if not os.path.exists('data'): os.makedirs('data') # 如果未创建,则引发错误 exce

随机推荐