用opencv将视频帧合成视频时,出现色域变化

原视频:

经过opencv帧提取再合成的视频:


出现这种原因是在视频帧的提取时,我将图片的BGR转为了RGB,但没有在视频帧的写入时,重新将RGB转回BGR,其过程应该是:

image = Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))  # 格式转换,bgr转rgb

img_jpg = cv2.cvtColor(img_jpg, cv2.COLOR_RGB2BGR)
vout.write(img_jpg)

你可能感兴趣的:(python,opencv)