将 numpy 图像列表转换为 mp4 视频

Converting numpy list of images to mp4 video

我有 1000 张 RGB 图像(1000、96、96、3)的 Numpy 列表。我使用 openCV 从这些图像中创建了一个 mp4 视频。我的道路是棕色的,汽车是红色的,但在我创建视频后它们变成了蓝色。 你能告诉我如何避免这个问题吗?

我的代码:

img_array = []
for img in brown_dataset:
    img_array.append(img)

size = (96,96)

out = cv2.VideoWriter('project_brown.mp4',cv2.VideoWriter_fourcc(*'DIVX'),15, size)

for i in range(len(img_array)):
    out.write(img_array[i])
out.release()

视频之前:

视频后:

如评论中所述,OpenCV默认使用BGR格式,其中您的输入数据集为RGB。

这是一种修复方法

img_array = []
for img in brown_dataset:
    img_array.append(img)

size = (96,96)

out = cv2.VideoWriter('project_brown.mp4',cv2.VideoWriter_fourcc(*'DIVX'),15, size)

for i in range(len(img_array)):
    rgb_img = cv2.cvtColor(img_array[i], cv2.COLOR_RGB2BGR)
    out.write(rgb_img)
out.release()