正如我在本博客教程中详细解释的那样,有关如何使用解释和代码示例构建该项目的正如我所述。
| 视频文件目录 | 提取的图像目录 |
|---|---|
![]() | ![]() |
| 迭代目录中的所有视频 | 提取框架(自定义后(所需间隔(以秒为单位)提取的帧之间,从(所需秒)等开始) |
视频框架提取器是一个Python脚本,可让您从目录中提取所有视频文件上迭代的帧,并将它们作为单个图像文件保存在两个不同的目录中:一个用于原始尺寸帧,一个用于调整大小的帧。该脚本使用OpenCV和Imutils Python软件包进行图像处理和fire python软件包,用于简化的命令行接口。
该脚本使您可以以指定的速率从视频中提取帧。通过在提取的帧之间指定所需的间隔(以秒为单位),您可以快速生成大量图像数据集,以进行对象检测,图像分类或其他计算机视觉任务。
对于图像注释,通常需要从视频中提取帧。该应用程序使得即使您的数据最初是以视频的形式生成训练对象检测或图像分类模型的大型图像数据集,也可以轻松生成大量的图像。
通过自动化框架提取过程,以在目录中的所有视频文件中迭代,与手动从每个视频文件中提取帧相比,此应用程序可以节省时间和精力。
希望您发现视频框架提取器对您的计算机视觉项目有用!
要使用视频框架提取器,您需要使用以下参数运行frame_extractor.py python脚本:
vid_dir :通往包含您要从中提取帧的视频文件的目录的路径。out_dir :要保存提取的帧的目录的路径。img_frmt (可选):保存提取的帧的图像格式。默认值为JPG 。required_frame_rate (可选):每秒提取的帧数。默认值为1 。start_from_seconds (可选):开始提取帧的秒数。默认值为0 。该应用程序将从指定目录中的所有视频中提取帧,并将其保存到输出目录。
而不是每次运行此应用程序时都可以传递参数,您可以在settings.py文件中添加这些参数。设置
python frame_extractor_multithread.py 要使用视频框架提取器,您需要使用Python 3和以下Python软件包:
您可以使用PIP安装这些软件包,通过在终端中运行以下命令:
pip install opencv-python imutils fire python frame_extractor . py - - help python frame_extractor . py - - vid_dir = [ vid_dir ] - - out_dir = [ out_dir ] - - img_frmt = [ img_frmt ] - - required_frame_rate = [ required_frame_rate ] - - start_from_seconds = [ start_from_seconds ] vid_dir中所有视频的提取过程将启动并将提取的帧保存到out_dir
假设您有一个位于/路径/to/video目录中的视频文件,称为my_video.mp4,您想从中提取帧并将它们保存在/路径/to/output Directory中,每个帧速率为2帧。第二,从10秒开始进入视频。您可以运行以下命令:
python frame_extractor . py - - vid_dir = / path / to / video - - out_dir = / path / to / output - - required_frame_rate = 2 - - start_from_seconds = 10该脚本将从my_video.mp4提取帧,将原始大小帧保存在/路径/to/to/output/ofute/orig_size_frames目录以及/path/to/path/to/to/to/output/utputs/rece_size_frames目录中的大小帧中。提取的框架将以JPEG格式保存,并使用form my_video_1.jpg,my_video_2.jpg的文件名保存。
另外,您可以编辑settings.py文件和frame_extractor.py将接受此处的参数。
例如:
在settings.py中编辑所需的设置。
# If you don't want to pass too many arguments every time you can modify the settings here.
# And the script will accept the setting from this file every time you run
# 'python extract_frames.py'
# Video file
VIDEO_DIRPATH = ROOT / 'videos' # EDIT: 1 (Required)
# Frame settings
REQUIRED_FRAME_RATE = 2 # EDIT: 2
# Number of seconds for a frame. For example: 0.5 means, 1 frame after 0.5 seconds pass
START_FROM_SECOND = 1 # EDIT: 3
# For example: 2 means, start extraction of the frames after 2 seconds of the video is passed.
REQUIRED_IMAGE_FORMAT = 'jpg' # EDIT: 4
REQUIRED_IMAGE_WIDTH = 720 # EDIT: 5
# Output frames dirpath
OUTDIR = BASE_ROOT / 'skyscraper' # EDIT: 6 (Required) 如果您发现我的Python代码有帮助,请考虑给它一颗星。
对于该应用程序的任何问题或有任何改进的反馈或建议。请提出一个问题
视频框架提取器已获得MIT许可证的许可。有关详细信息,请参见许可证文件。