如何应用不是cv2.THRESH_BINARY掩码的掩码以python-opencv覆盖原始图像?

时间:2018-08-13 04:51:56

标签: opencv mask

蒙版边缘柔软,像这样:

enter image description here

在Photoshop中使用此蒙版的结果是:

enter image description here

在cv2.bitwise_and之后,结果很糟糕!

enter image description here

我该如何像photoshop这样处理,或者python-opencv中的任何其他方法都可以做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您想要像photoshop中一样的透明效果,则需要使用Alpha通道。参见this question

如果要将图像与其他背景合成,则可以使用Alpha遮罩公式I = aF+(1-a)B,其中a是Alpha,F是前景,而B是背景。像这样:

ex_alpha = np.repeat(alpha[:, :, np.newaxis], 3, axis=2)
output = (foreground*ex_alpha) + (1-ex_alpha)*background

存在重复是因为前景/背景是3通道,而alpha是1通道。