首頁 > 軟體

python如何將圖片生成視訊MP4

2023-03-27 06:01:36

python圖片生成視訊MP4

import os
import cv2

# 要被合成的多張圖片所在資料夾
# 路徑分隔符最好使用「/」,而不是「」,「」本身有跳脫的意思;或者「\」也可以。
# 因為是資料夾,所以最後還要有一個「/」
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,如果圖片不多,幀頻最好設定的小一點
# (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)) #將圖片轉換為1280*720畫素大小
    video.write(img) # 寫入視訊
    
# 釋放資源
video.release()

python圖片與視訊互轉(親測有效)

圖片轉視訊

1.任務需求背景

在標註資料的過程中,需要【反覆】瀏覽大量圖片(萬張以上的數量級),確認圖片中的目標類別以及室內戶型佈局。

但是,在電腦上瀏覽圖片有很大的不足:(a)需要持續點選滑鼠或者鍵盤;(b)圖片載入跟不上點選速度。 

值得注意的是:網上有很多程式碼(圖片轉視訊),但是真正能用的幾乎很少,本博文的程式碼經過測試,可以成功生成視訊。

2.程式碼依賴庫

opencv-python==4.5.2
numpy==1.19.2
glob(python自帶模組)

3.程式碼實戰

基本步驟如下:

  • a. 使用glob獲取路徑下的所有圖片;  
  • b. cv2.imread()讀取所有圖片;  
  • c. 將讀取的圖片儲存在新的列表中,img_array;  
  • d. 使用cv2.VideoWriter()建立VideoWriter物件,注意引數的設定;  
  • e. 使用cv2.VideoWriter().write()儲存 img_array 中的每一幀影象到視訊檔;  
  • f. 釋放 VideoWriter物件;
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()

下圖是原始圖片資料:

生成的視訊檔(播放中):

注意事項

(1)通過測試發現,Mp4格式的視訊清晰度低於 Avi 視訊的清晰度;

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com