我有一组包含1000张RGB图像的Numpy列表(1000, 96, 96, 3)。我使用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()