正如我在本博客教程中詳細解釋的那樣,有關如何使用解釋和代碼示例構建該項目的正如我所述。
視頻文件目錄 | 提取的圖像目錄 |
---|---|
![]() | ![]() |
迭代目錄中的所有視頻 | 提取框架(自定義後(所需間隔(以秒為單位)提取的幀之間,從(所需秒)等開始) |
視頻框架提取器是一個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許可證的許可。有關詳細信息,請參見許可證文件。