📜  Python|使用 OpenCV 使用多个图像创建视频(1)

📅  最后修改于: 2023-12-03 15:04:23.949000             🧑  作者: Mango

使用 OpenCV 使用多个图像创建视频

在这个教程中,我们将使用 Python 和 OpenCV 来创建一个视频文件。我们将使用多个图像组成视频,并且可以设置视频的 FPS 帧率,视频的尺寸大小等参数。

准备工作

首先,我们需要安装 OpenCV 库。可以使用 pip 在命令行中安装:

pip install opencv-python
具体步骤
步骤1:导入库
import cv2
import os
步骤2:指定图像文件夹路径
image_folder = '/path/to/image/folder'

如果你不知道图像文件夹的路径在哪里,可以在命令行中使用 pwd 命令查看当前所在的文件夹路径,然后进入相应的文件夹查看。

步骤3:设置视频的参数
video_name = 'output.avi'
fps = 30
width = 640
height = 480

在这个例子中,我们设置视频的帧率为 30 帧每秒,视频的大小为 640 × 480 像素。

步骤4:获取图像文件夹中的所有文件名
images = [img for img in os.listdir(image_folder) if img.endswith('.png')]

这个语句会在指定的图像文件夹中获取所有以 .png 结尾的文件的文件名。

步骤5:使用 OpenCV 创建视频文件
fourcc = cv2.VideoWriter_fourcc(*'DIVX')
video = cv2.VideoWriter(video_name, fourcc, fps, (width, height))

在创建视频文件之前,我们需要使用 cv2.VideoWriter_fourcc() 函数获取一个视频编解码器。我们使用的编解码器是 DIVX

然后,我们使用 cv2.VideoWriter() 函数创建一个视频文件,并指定视频的名称,编解码器,帧率和视频的大小。

步骤6:将图像添加到视频文件中
for image in images:
    image_path = os.path.join(image_folder, image)
    frame = cv2.imread(image_path)
    video.write(frame)

通过 cv2.imread() 函数,我们可以将图像文件读取为一个帧(frame)对象。接着,我们可以使用 video.write() 函数将这个帧对象添加到视频文件当中。

步骤7:释放资源
cv2.destroyAllWindows()
video.release()

在程序运行结束后,我们需要释放所有资源。通过 cv2.destroyAllWindows() 函数关闭所有窗口,再通过 video.release() 函数释放视频资源。

完整代码
import cv2
import os

image_folder = '/path/to/image/folder'
video_name = 'output.avi'
fps = 30
width = 640
height = 480

images = [img for img in os.listdir(image_folder) if img.endswith('.png')]

fourcc = cv2.VideoWriter_fourcc(*'DIVX')
video = cv2.VideoWriter(video_name, fourcc, fps, (width, height))

for image in images:
    image_path = os.path.join(image_folder, image)
    frame = cv2.imread(image_path)
    video.write(frame)

cv2.destroyAllWindows()
video.release()
总结

本教程介绍了如何使用 Python 和 OpenCV 创建一个视频文件,将多个图像组成视频。希望这个教程可以帮助到你。