如何从图像创建视频?

Ser*_*ich 3 python video opencv image matrix

我有一个算法,每次迭代后都会创建一个矩阵。对矩阵进行一些操作后,将其绘制给用户。如果我运行程序 6 次我会得到:

一堆图像

我的目标是动态地改变图像,就像电影一样。

我不知道该从哪一方面开始。我找到了一些在 python 中从图像创建视频然后将其包装在视频播放器中的方法。但似乎有点复杂,算法运行时无法看到变化。有什么建议如何去做吗?

Ara*_*ggu 7

您可以使用FFMPEG

ffmpeg -r 1 -i img%01d.png -vcodec mpeg4 -y movie.mp4
Run Code Online (Sandbox Code Playgroud)

-r 1是每秒的帧/图像数。增加它以使视频更快。

在Python中:

def convert():
    os.system("ffmpeg -r 1 -i img%01d.png -vcodec mpeg4 -y movie.mp4")
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用ImageIO生成 GIF。您可以设置每帧持续时间的参数。

import imageio
with imageio.get_writer('/path_to_video.gif', mode='I') as writer:
    for filename in filenames:
        image = imageio.imread(filename)
        writer.append_data(image)
Run Code Online (Sandbox Code Playgroud)

请阅读网站上的手册以获取更详细的说明。

或者使用 cv2

import cv2

img1 = cv2.imread('1.jpg')
img2 = cv2.imread('2.jpg')
img3 = cv2.imread('3.jpg')

height , width , layers =  img1.shape

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

video.write(img1)
video.write(img2)
video.write(img3)

cv2.destroyAllWindows()
video.release()
Run Code Online (Sandbox Code Playgroud)