Opencv python在其他图像上添加transperent图像

时间:2018-05-01 07:49:09

标签: python opencv opencv3.0 opencv3.1

我想在人体部位添加像布一样的透明图像。我做了这个部分,就像把布放在哪里。我也计算了这些点,但主要部分是如何将透明图像放在我的人体图像上。任何人都知道简单的python代码将透明图像放在另一个图像上。请帮帮我。

1 个答案:

答案 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,它是输出   应用加权求和运算后的目标 - 此值为   我们的最终输出图片。