matting问题本质上作为一个回归问题,其生成的alpha matte包含的是每个像素属于前景的“程度”;而二分割则是分类问题,每个像素要么属于前景,要么属于背景。
可以设置一个阈值,认为 α \alpha α值超过某个给定阈值则认为其为前景,小于该阈值则认为其为背景,从而达到问题的转化。
比如我们有个matting结果如下(图源alphamatting.com数据集):
将
α
\alpha
α值非零的像素点都认为是前景(在这里为人像),结果如下:
代码:
from skimage import io
img = io.imread("GT08.png")
idx = (img > 0)
img[idx] = 255
io.imsave('res.png', img)
利用的是numpy的布尔数组索引。