利用Python將多張圖片合成視頻

今天要作一個量子隧穿的的演示動畫,在CSDN上看了不少大佬的文章,然而忙了接近半天才作好這件事。把踩過的坑記一下,同時這段代碼也是值得記錄的,由於之後也可能遇到相似的工做。
先上代碼`python

import numpy as np
import cv2
#讀取一張圖片
size = (432,288)
print(size)
#完成寫入對象的建立,第一個參數是合成以後的視頻的名稱,第二個參數是能夠使用的編碼器,第三個參數是幀率即每秒鐘展現多少張圖片,第四個參數是圖片大小信息
videowrite = cv2.VideoWriter(r'F:\test.mp4',-1,20,size)#20是幀數,size是圖片尺寸
img_array=[]
for filename in [r'F:\Picture\{0}.png'.format(i) for i in range(600)]:
    img = cv2.imread(filename)
    if img is None:
        print(filename + " is error!")
        continue
    img_array.append(img)
for i in range(600):
    videowrite.write(img_array[i])
print('end!')

算法的核心思想,你們的代碼可能千差萬別,可是思路都是同樣的。
1.利用cv2.imread()讀取圖片文件
2.利用cv2.VideoWriter()產生一個對象
3.調用這個對象的write方法將所需的圖片寫進去,這樣就生成了一個視頻
幾個大坑:
1.算法

size = (432,288)#這邊是圖片的尺寸,圖片的尺寸得是同樣的,不同的話有個博主編了一個resize函數能夠去參考一下

2.imread函數沒法讀取有中文字符的路徑,必定得是英文字符
3.videowrite = cv2.VideoWriter(r'F:\test.mp4',-1,20,size)這邊的路徑好像也得是英文,我試了含有中文的路徑不行

我把圖片命名爲0~599.png
按照以上的代碼文件生成了一下的視頻文件
在這裏插入圖片描述app

   

 

Python測試和開發

相關文章
相關標籤/搜索