遮罩然后粘贴 python 中的两个图像

Masking and then pasting two images in python

我有一张看起来像这样的图片:

我想将背景转换为白色,将所有其他像素转换为黑色,这样我的图像看起来像这样:

假设原图是img,上面的结果是mask。当我尝试从原始图像中获取 mask 时,事情并没有按预期进行。我这样做了:

mask = np.ones_like(img)*255
mask[img > 0] = 0

理想情况下我应该得到预期的结果,但这就是我得到的结果。

此外,我还有另一张看起来像这样的图片:

我想在这张最终的日落图像上粘贴预期的蒙版。我怎样才能使用 numpy/scipy/PIL/skimage?

因为我们希望在 img 中将任何非黑色的东西设置为 mask 中的零,只需沿着三个通道(最后一个轴)寻找 ANY 和使用该布尔数组屏蔽 mask -

mask[(img>0).any(-1)] = 0

给定样本 #1 的输出 -

将其与日落图像混合img2 -

from scipy.misc import imresize

mask_resized = imresize(mask, size=img2.shape)
out = (mask_resized==255)*img2 

输出-