2017-03-27 2 views
2

Ich habe versucht, ein Video zu erstellen, um die dynamische Variation der Daten zu zeigen, wie nur die Bilder nacheinander schnell nacheinander zu zeigen, also habe ich Bilder (die Bilder nur genannt 1,2, 3,4, .....) und schrieb den folgenden Code:Python Erstellen von Video aus Bildern mit opencv

import cv2 
import numpy as np 

img=[] 
for i in range(0,5): 
    img.append(cv2.imread(str(i)+'.png')) 

height,width,layers=img[1].shape 

video=cv2.VideoWriter('video.avi',-1,1,(width,height)) 

for j in range(0,5): 
    video.write(img) 

cv2.destroyAllWindows() 
video.release() 

und ein Fehler ausgelöst wurde:

TypeError: image is not a numpy array, neither a scalar 

ich denke, dass ich die Liste in einer falschen Weise verwendet, aber ich bin nicht sicher. Also, wo habe ich etwas falsch gemacht?

+0

Mögliche Duplikat [Create Video von Bildern mit Videocapture (OpenCV)] (http://stackoverflow.com/questions/22765397/create-video- from-images-using-videocapture-opencv) –

Antwort

2

Sie schreiben das gesamte Array von Frames. Versuchen Sie Frame für Frame speichern statt:

... 
for j in range(0,5): 
    video.write(img[j]) 
... 

reference

+0

ja ich habe gerade festgestellt, dass ich einen dummen Fehler gemacht habe ... danke trotzdem! –

+0

Gern geschehen. Bitte markieren Sie diese Antwort als Lösung. Danke :) (@YingqiangGao) –

+0

Ich bin neu zu stapeln Überlauf, wie kann ich Ihre Antwort markieren, wie Sie wollten? –

Verwandte Themen