在python中屏蔽然后粘贴两个图像

时间:2017-08-31 11:46:48

标签: python numpy scipy python-imaging-library scikit-image

我的图像看起来像这样:

enter image description here

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

enter image description here

我们假设原始图片为img,上述结果为mask。当我尝试从原始图像中获取mask时,事情无法按预期工作。我这样做了:

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

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

enter image description here

另外,我有另一张图片,如下所示:

enter image description here

我想在最终的日落图像上粘贴预期的蒙版。我怎么能用numpy / scipy / PIL / skimage做到这一点?

1 个答案:

答案 0 :(得分:3)

由于我们希望在img中将mask中未设置为黑色的任何内容设置为零,只需沿三个通道查找ANY(最后一个轴)并使用该布尔数组屏蔽mask -

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

给定样本#1的输出 -

enter image description here

将其与日落图像img2 -

混合
from scipy.misc import imresize

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

输出 -

enter image description here