python如何將圖片生成視頻MP4
python圖片生成視頻MP4
import os import cv2 # 要被合成的多張圖片所在文件夾 # 路徑分隔符最好使用“/”,而不是“\”,“\”本身有轉(zhuǎn)義的意思;或者“\\”也可以。 # 因?yàn)槭俏募A,所以最后還要有一個(gè)“/” file_dir = 'C:/Users/YUXIAOYANG/Desktop/tset/' list = [] for root ,dirs, files in os.walk(file_dir): for file in files: list.append(file) # 獲取目錄下文件名列表 # VideoWriter是cv2庫提供的視頻保存方法,將合成的視頻保存到該路徑中 # 'MJPG'意思是支持jpg格式圖片 # fps = 5代表視頻的幀頻為5,如果圖片不多,幀頻最好設(shè)置的小一點(diǎn) # (1280,720)是生成的視頻像素1280*720,一般要與所使用的圖片像素大小一致,否則生成的視頻無法播放 # 定義保存視頻目錄名稱和壓縮格式,像素為1280*720 video = cv2.VideoWriter('C:/Users/YUXIAOYANG/Desktop/test.mp4',cv2.VideoWriter_fourcc('m', 'p', '4', 'v'),5,(1981,991)) for i in range(1,len(list)): img = cv2.imread('C:/Users/YUXIAOYANG/Desktop/tset/'+list[i-1]) #讀取圖片 print(img.shape) #img = cv2.resize(img,(1981,991)) #將圖片轉(zhuǎn)換為1280*720像素大小 video.write(img) # 寫入視頻 # 釋放資源 video.release()
python圖片與視頻互轉(zhuǎn)(親測(cè)有效)
圖片轉(zhuǎn)視頻
1.任務(wù)需求背景
在標(biāo)注數(shù)據(jù)的過程中,需要【反復(fù)】瀏覽大量圖片(萬張以上的數(shù)量級(jí)),確認(rèn)圖片中的目標(biāo)類別以及室內(nèi)戶型布局。
但是,在電腦上瀏覽圖片有很大的不足:(a)需要持續(xù)點(diǎn)擊鼠標(biāo)或者鍵盤;(b)圖片加載跟不上點(diǎn)擊速度。
值得注意的是:網(wǎng)上有很多代碼(圖片轉(zhuǎn)視頻),但是真正能用的幾乎很少,本博文的代碼經(jīng)過測(cè)試,可以成功生成視頻。
2.代碼依賴庫
opencv-python==4.5.2 numpy==1.19.2 glob(python自帶模塊)
3.代碼實(shí)戰(zhàn)
基本步驟如下:
- a. 使用
glob
獲取路徑下的所有圖片; - b.
cv2.imread()
讀取所有圖片; - c. 將讀取的圖片存儲(chǔ)在新的列表中,
img_array
; - d. 使用
cv2.VideoWriter()
創(chuàng)建VideoWriter
對(duì)象,注意參數(shù)的設(shè)置; - e. 使用
cv2.VideoWriter().write()
保存img_array
中的每一幀圖像到視頻文件; - f. 釋放
VideoWriter
對(duì)象;
import cv2 import numpy as np import glob import os # 其它格式的圖片也可以 img_array = [] for filename in glob.glob('E:/3DS1Data/20211118/29984CRL30V00067087/dataset/rgb/*.png'): img = cv2.imread(filename) height, width, layers = img.shape size = (width, height) img_array.append(img) # avi:視頻類型,mp4也可以 # cv2.VideoWriter_fourcc(*'DIVX'):編碼格式 # 5:視頻幀率 # size:視頻中圖片大小 out = cv2.VideoWriter('E:/3DS1Data/20211118/29984CRL30V00067087/dataset/project-all.avi', cv2.VideoWriter_fourcc(*'DIVX'), 5, size) for i in range(len(img_array)): out.write(img_array[i]) out.release()
下圖是原始圖片數(shù)據(jù):
生成的視頻文件(播放中):
注意事項(xiàng)
(1)通過測(cè)試發(fā)現(xiàn),Mp4格式的視頻清晰度低于 Avi 視頻的清晰度;
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python3進(jìn)行表格數(shù)據(jù)處理的示例詳解
數(shù)據(jù)處理是一個(gè)當(dāng)下非常熱門的研究方向,通過對(duì)于大型實(shí)際場(chǎng)景中的數(shù)據(jù)進(jìn)行建模,可以用于預(yù)測(cè)下一階段可能出現(xiàn)的情況。本文就來聊聊Python3進(jìn)行表格數(shù)據(jù)處理的相關(guān)操作,需要的可以參考一下2023-03-03pycharm安裝opencv-python報(bào)錯(cuò)的解決
本文主要介紹了pycharm安裝opencv-python報(bào)錯(cuò)的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Python繪圖實(shí)現(xiàn)坐標(biāo)軸共享與復(fù)用詳解
這篇文章主要為大家詳細(xì)介紹了Python在繪圖時(shí)如何實(shí)現(xiàn)坐標(biāo)軸共享與復(fù)用,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02python 項(xiàng)目目錄結(jié)構(gòu)設(shè)置
JAVA有標(biāo)準(zhǔn)的maven目錄結(jié)構(gòu),golang也有建議的目錄結(jié)構(gòu),那么我想python是不是也有一個(gè)比較好的目錄結(jié)構(gòu)組織方式呢2020-02-02springboot整合單機(jī)緩存ehcache的實(shí)現(xiàn)
本文主要介紹了springboot整合單機(jī)緩存ehcache的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02