python中如何使用mask去除背景

use*_*019 5 python background extract

我想通过使用蒙版图像删除背景。现在,我已经得到了蒙版图像。我尝试让原始图像的背景值变为0,其中蒙版值为0。但结果非常糟糕。我怎么解决这个问题。谢谢

from skimage import io
import numpy as np
img = io.imread("GT06.jpg")
mask = io.imread("GT03.png")
mask2 = np.where((mask==0),0,1).astype('uint8')
img = img*mask2[:,:,np.newaxis]
io.imshow(img)
io.show()
Run Code Online (Sandbox Code Playgroud)

GT06.jpg

在此处输入图片说明

GT03.png

在此处输入图片说明

这导致: 在此处输入图片说明

我想得到这样的前景:

在此处输入图片说明

Ste*_*nes 4

问题是你的蒙版不是纯黑白的,即所有 0 或 255 将你的蒙版两代更改为:

mask2 = np.where((mask<200),0,1).astype('uint8')
Run Code Online (Sandbox Code Playgroud)

结果是:

重新伪装

您可以使用掩码或阈值数字 - 我使用了 200。