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)文章
Python實(shí)現(xiàn)密鑰密碼(加解密)實(shí)例詳解
這篇文章主要介紹了Python實(shí)現(xiàn)密鑰密碼(加解密),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04Python編程中對(duì)文件和存儲(chǔ)器的讀寫(xiě)示例
這篇文章主要介紹了Python編程中對(duì)文件和存儲(chǔ)器的讀寫(xiě)示例,包括使用cPickle儲(chǔ)存器存儲(chǔ)對(duì)象的例子,需要的朋友可以參考下2016-01-01Python標(biāo)準(zhǔn)庫(kù)os.path包、glob包使用實(shí)例
這篇文章主要介紹了Python標(biāo)準(zhǔn)庫(kù)os.path包、glob包使用實(shí)例,本文直接給出代碼,代碼中有詳細(xì)注釋,需要的朋友可以參考下2014-11-11完美處理python與anaconda環(huán)境變量的沖突問(wèn)題
這篇文章主要介紹了完美處理Python與anaconda環(huán)境變量的沖突問(wèn)題,對(duì)anaconda感興趣的同學(xué),可以參考下2021-04-04詳解使用python的logging模塊在stdout輸出的兩種方法
這篇文章主要介紹了詳解使用python的logging模塊在stdout輸出的相關(guān)資料,需要的朋友可以參考下2017-05-05python中精確的浮點(diǎn)數(shù)運(yùn)算示例
這篇文章主要為大家介紹了python中精確的浮點(diǎn)數(shù)運(yùn)算示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07Python模擬登錄requests.Session應(yīng)用詳解
這篇文章主要介紹了Python模擬登錄requests.Session應(yīng)用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Python中使用sqlalchemy操作數(shù)據(jù)庫(kù)的問(wèn)題總結(jié)
在探索使用?FastAPI,?SQLAlchemy,?Pydantic,Redis,?JWT?構(gòu)建的項(xiàng)目的時(shí)候,其中數(shù)據(jù)庫(kù)訪問(wèn)采用SQLAlchemy,并采用異步方式,這篇文章主要介紹了在Python中使用sqlalchemy來(lái)操作數(shù)據(jù)庫(kù)的幾個(gè)小總結(jié),需要的朋友可以參考下2024-08-08