python視頻按幀截取圖片工具
本文實(shí)例為大家分享了python視頻按幀截取圖片工具的具體代碼,供大家參考,具體內(nèi)容如下
描述:將一個(gè)視頻流按幀數(shù)截取大量的圖片
用途:AI的數(shù)據(jù)集制作,得到大量的圖片,之后將其打標(biāo)簽
更改的地方
1.default--間隔的幀數(shù) 2.input/output--輸入視頻的路徑、存放截取圖片的路徑 (將路徑放入后面的‘ '中即可)前面加r可表示絕對(duì)路徑 eg:
args = parser.parse_args(['--input',r'F:\data_video\IMG_4395.MOV','--output',r'F:data_rgb_pic\7video'])
直接上代碼
import cv2
import argparse
import os
def parse_args():
"""
Parse input arguments
"""
parser = argparse.ArgumentParser(description='Process pic')
parser.add_argument('--input', help='video to process', dest='input', default=None, type=str)
parser.add_argument('--output', help='pic to store', dest='output', default=None, type=str)
#default為間隔多少幀截取一張圖片
parser.add_argument('--skip_frame', dest='skip_frame', help='skip number of video', default=100, type=int)
#input為輸入視頻的路徑 ,output為輸出存放圖片的路徑
args = parser.parse_args(['--input','','--output',''])
return args
def process_video(i_video, o_video, num):
cap = cv2.VideoCapture(i_video)
num_frame = cap.get(cv2.CAP_PROP_FRAME_COUNT)
expand_name = '.jpg'
if not cap.isOpened():
print("Please check the path.")
cnt = 0
count = 0
while 1:
ret, frame = cap.read()
cnt += 1
# how
# many
# frame
# to
# cut
if cnt % num == 0:
count += 1
cv2.imwrite(os.path.join(o_video, str(count) + expand_name), frame)
if not ret:
break
if __name__ == '__main__':
args = parse_args()
if not os.path.exists(args.output):
os.makedirs(args.output)
print('Called with args:')
print(args)
process_video(args.input, args.output, args.skip_frame)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Pygame鼠標(biāo)進(jìn)行圖片的移動(dòng)與縮放案例詳解
pygame是Python的第三方庫(kù),里面提供了使用Python開(kāi)發(fā)游戲的基礎(chǔ)包。本文將介紹如何通過(guò)Pygame實(shí)現(xiàn)鼠標(biāo)進(jìn)行圖片的移動(dòng)與縮放,感興趣的可以關(guān)注一下2021-12-12
python的numpy模塊安裝不成功簡(jiǎn)單解決方法總結(jié)
這篇文章主要介紹了python的numpy模塊安裝不成功簡(jiǎn)單解決方法總結(jié),分享了四種python模塊導(dǎo)入不成功的解決方法,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12
使用keras內(nèi)置的模型進(jìn)行圖片預(yù)測(cè)實(shí)例
這篇文章主要介紹了使用keras內(nèi)置的模型進(jìn)行圖片預(yù)測(cè)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
PyCharm使用之配置SSH Interpreter的方法步驟
這篇文章主要介紹了PyCharm使用之配置SSH Interpreter的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
Python使用sys.path查看當(dāng)前的模塊搜索路徑
sys.path 是 Python 中的一個(gè)列表,它用于存儲(chǔ)模塊搜索路徑,當(dāng)你使用 import 語(yǔ)句導(dǎo)入一個(gè)模塊時(shí),Python 會(huì)按照 sys.path 列表中的路徑順序來(lái)查找這個(gè)模塊,本文給大家介紹了Python使用sys.path查看當(dāng)前的模塊搜索路徑,需要的朋友可以參考下2025-02-02
Python進(jìn)階Matplotlib庫(kù)圖繪制
這篇文章主要介紹了Python進(jìn)階Matplotlib庫(kù)圖繪制,Matplotlib:是一個(gè)Python的2D繪圖庫(kù),通過(guò)Matplotlib,開(kāi)發(fā)者可以僅需要幾行代碼,便可以生成折線圖,直方圖,條形圖,餅狀圖,散點(diǎn)圖等2022-07-07
PyCharm之如何設(shè)置自動(dòng)換行問(wèn)題
這篇文章主要介紹了PyCharm之如何設(shè)置自動(dòng)換行問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
PyTorch使用Torchdyn實(shí)現(xiàn)連續(xù)時(shí)間神經(jīng)網(wǎng)絡(luò)的代碼示例
神經(jīng)常微分方程(Neural ODEs)是深度學(xué)習(xí)領(lǐng)域的創(chuàng)新性模型架構(gòu),它將神經(jīng)網(wǎng)絡(luò)的離散變換擴(kuò)展為連續(xù)時(shí)間動(dòng)力系統(tǒng),本文將基于Torchdyn(一個(gè)專門用于連續(xù)深度學(xué)習(xí)和平衡模型的PyTorch擴(kuò)展庫(kù))介紹Neural ODE的實(shí)現(xiàn)與訓(xùn)練方法,需要的朋友可以參考下2025-02-02

