将png图像合并到python中具有alpha通道的视频

问题描述 投票:0回答:1

我的意图是:-从视频中提取所有帧-对每帧应用背景去除-将所有帧合并为具有透明度的视频

问题:-所产生的视频在以前的背景下没有所需的透明度我的合并部分代码

import cv2
import os

image_folder = r"C:\Users\youre\Documents\machine_learning\bg-rm\output"
video_name = r'C:\Users\youre\Documents\machine_learning\bg-rm\nigga2.avi'
images =  # list of all frames
frame = cv2.imread(os.path.join(image_folder, images[0]))
height, width, layers = frame.shape
video = cv2.VideoWriter(video_name, cv2.VideoWriter_fourcc(*"MJPG"), 30, (width, height))
for image in images:
    video.write(cv2.imread(os.path.join(image_folder, image)))
cv2.destroyAllWindows()
video.release()

我的问题:-我要做什么才能使结果视频中的背景透明,因为我的代码仅给我黑色背景。更具体:如何将png框架与Alpha通道合并在一起?

python opencv video cv2
1个回答
0
投票
MJPG视频格式不支持Alpha通道。这只是JPEG图像的序列,JPEG格式不支持透明度。您应该选择支持它的编解码器。但是我不确定可以通过OpenCV获得它,这取决于您的平台。

相反,您可以将每个图像另存为PNG(带有Alpha通道),然后将它们与FFMPEG等第三方工具合并。HAP是我知道的唯一支持Alpha通道的唯一免费和开放源视频格式,但我并不全部了解。

© www.soinside.com 2019 - 2024. All rights reserved.