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庫(kù)提供的視頻保存方法,將合成的視頻保存到該路徑中
# 'MJPG'意思是支持jpg格式圖片
# fps = 5代表視頻的幀頻為5,如果圖片不多,幀頻最好設(shè)置的小一點(diǎn)
# (1280,720)是生成的視頻像素1280*720,一般要與所使用的圖片像素大小一致,否則生成的視頻無(wú)法播放
# 定義保存視頻目錄名稱和壓縮格式,像素為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) # 寫(xiě)入視頻
# 釋放資源
video.release()python圖片與視頻互轉(zhuǎn)(親測(cè)有效)
圖片轉(zhuǎn)視頻
1.任務(wù)需求背景
在標(biāo)注數(shù)據(jù)的過(guò)程中,需要【反復(fù)】瀏覽大量圖片(萬(wàn)張以上的數(shù)量級(jí)),確認(rèn)圖片中的目標(biāo)類別以及室內(nèi)戶型布局。
但是,在電腦上瀏覽圖片有很大的不足:(a)需要持續(xù)點(diǎn)擊鼠標(biāo)或者鍵盤(pán);(b)圖片加載跟不上點(diǎn)擊速度。
值得注意的是:網(wǎng)上有很多代碼(圖片轉(zhuǎn)視頻),但是真正能用的幾乎很少,本博文的代碼經(jīng)過(guò)測(cè)試,可以成功生成視頻。
2.代碼依賴庫(kù)
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)通過(guò)測(cè)試發(fā)現(xiàn),Mp4格式的視頻清晰度低于 Avi 視頻的清晰度;
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Django 解決阿里云部署同步數(shù)據(jù)庫(kù)報(bào)錯(cuò)的問(wèn)題
這篇文章主要介紹了Django 解決阿里云部署同步數(shù)據(jù)庫(kù)報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05
Python設(shè)計(jì)模式之單例模式實(shí)例
這篇文章主要介紹了設(shè)計(jì)模式中的單例模式Python實(shí)例,需要的朋友可以參考下2014-04-04
Python調(diào)用OpenCV實(shí)現(xiàn)圖像平滑代碼實(shí)例
這篇文章主要介紹了Python調(diào)用OpenCV實(shí)現(xiàn)圖像平滑代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
Python3實(shí)現(xiàn)的旋轉(zhuǎn)矩陣圖像算法示例
這篇文章主要介紹了Python3實(shí)現(xiàn)的旋轉(zhuǎn)矩陣圖像算法,涉及Python3列表遍歷、切片轉(zhuǎn)換、矩陣運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下2019-04-04
Python可跨平臺(tái)實(shí)現(xiàn)獲取按鍵的方法
這篇文章主要介紹了Python可跨平臺(tái)實(shí)現(xiàn)獲取按鍵的方法,分別針對(duì)windows及Unix等不同平臺(tái)獲取按鍵的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
Pytorch之ToPILImage()不輸出圖片問(wèn)題及解決
這篇文章主要介紹了Pytorch之ToPILImage()不輸出圖片問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
Python程序設(shè)計(jì)入門(mén)(5)類的使用簡(jiǎn)介
這篇文章主要介紹了Python類的使用,需要的朋友可以參考下2014-06-06
python3 unicode列表轉(zhuǎn)換為中文的實(shí)例
今天小編就為大家分享一篇python3 unicode列表轉(zhuǎn)換為中文的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
Python調(diào)用Java可執(zhí)行jar包問(wèn)題
這篇文章主要介紹了Python調(diào)用Java可執(zhí)行jar包問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12

