我想在人体部位添加像布一样的透明图像。我做了这个部分,就像把布放在哪里。我也计算了这些点,但主要部分是如何将透明图像放在我的人体图像上。任何人都知道简单的python代码将透明图像放在另一个图像上。请帮帮我。
答案 0 :(得分:0)
使用addWeighted()函数
相当容易这是一个教程 - https://www.pyimagesearch.com/2016/03/07/transparent-overlays-with-opencv/
相关的代码段是:
# apply the overlay
cv2.addWeighted(overlay, alpha, output, 1 - alpha,
0, output)
将参数描述为:
第一个是我们的叠加层,我们想要使用提供的Alpha透明度水平“叠加”在原始图像上方的图像。
第二个参数是叠加层的实际Alpha透明度。 alpha越接近1.0,叠加层越不透明。 同样,α越接近0.0,越透明 将出现叠加。
cv2.addWeighted的第三个参数是源图像 - 在此 case,从磁盘加载的原始图像。
我们提供beta值作为第四个参数。 Beta定义为1 - α 。我们需要定义alpha和beta,使alpha + beta = 1.0。
第五个参数是伽马值 - 添加到标量的标量 加权和。您可以将gamma视为添加到输出的常量 应用加权加法后的图像。在这种情况下,我们将其设置为 零,因为我们不需要应用常量值的添加。
最后,我们有最后一个参数output,它是输出 应用加权求和运算后的目标 - 此值为 我们的最终输出图片。