1. 程式人生 > 程式設計 >利用Python將多張圖片合成視訊的實現

利用Python將多張圖片合成視訊的實現

今天要做一個量子隧穿的的演示動畫,在CSDN上看了很多大佬的文章,然而忙了接近半天才做好這件事。把踩過的坑記一下,同時這段程式碼也是值得記錄的,因為以後也可能遇到類似的工作。

先上程式碼`

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',size)這邊的路徑好像也得是英文,我試了含有中文的路徑不行

利用Python將多張圖片合成視訊的實現

我把圖片命名為0~599.png

按照以上的程式碼檔案生成了一下的視訊檔案

在這裡插入圖片描述

到此這篇關於利用Python將多張圖片合成視訊的實現的文章就介紹到這了,更多相關Python 圖片合成視訊內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!