2017-02-20 9 views
0
import cv2 
import cv2.cv as cv 
import glob 
import numpy as np 
from PIL import Image 
filelist = glob.glob('./*.jpg') 

isColor = 1 
fps  = 25 # or 30, frames per second 
frameW = 256 # images width 
frameH = 256 # images height 
writer = cv2.VideoWriter('test1.avi',-1, 25.0, (640,480)) 

#----------------------------- 
#Writing the video file: 
#----------------------------- 

nFrames = 10; #number of frames 
for i in range(nFrames): 
    img = np.array([np.array(Image.open(i)) for i in filelist]) 
#img = cv.LoadImage("image%d.jpg"%i) #specify filename and the extension 
#add the frame to the video 
#cv2.cv.WriteFrame(writer,img) 
    writer.write(img) 

VideoWriter = None # 

, когда я запускаю этот код выдается следующая ошибкаКак я могу создать видео файл из каталога изображений в Python

Traceback (most recent call last): 
    File "C:/Users/Buddhi/Desktop/New folder/Create Mp4.py", line 24, in <module> 
    writer.write(img) 
error: ..\..\..\..\opencv\modules\core\src\matrix.cpp:524: error: (-215) dims <= 2 in function cv::Mat::operator struct _IplImage 

Почему это? Пожалуйста, помогите мне.

+1

Ошибка указывает, что файл изображения может быть поврежден или отсутствует. – ZdaR

ответ

0

Возможно, не прямой ответ на вопрос, но уверены ли вы, что используете подходящий инструмент для этой работы?

Я нашел this answer, в котором объясняется, как вы можете использовать ffmpeg для преобразования изображений в видео. В зависимости от вашего варианта использования вы можете использовать Python для организации изображений и вызова ffmpeg, конечно.

+0

Thank you! Я постараюсь. – user7592296

+0

Добро пожаловать :) В дополнение: вы можете вызывать другие программы и функции из Python, используя, например, 'shell' или' subprocess', чтобы сохранить все в одном скрипте. – Nietvoordekat