将 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()
我有 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()