Closed LianShuaiLong closed 3 years ago
你好。 预测出的matte中每个像素值是范围在0~1间的浮点数。你需要使用matting的公式提取前景。参考代码如下:
fg = matte * image + (1 - matte) * np.full(image.shape, 0.0)
其中, matte
是预测的掩膜,image
是原图像,np.full(image.shape, 0.0)
是设置为黑色的背景,fg
是扣出来的前景。
你好。 预测出的matte中每个像素值是范围在0~1间的浮点数。你需要使用matting的公式提取前景。参考代码如下:
fg = matte * image + (1 - matte) * np.full(image.shape, 0.0)
其中,
matte
是预测的掩膜,image
是原图像,np.full(image.shape, 0.0)
是设置为黑色的背景,fg
是扣出来的前景。 已经解决,大佬厉害
@LianShuaiLong 可否分享一下您的 提取前景的代码,CV小白想学习MATTING,感激不尽
@LianShuaiLong 可否分享一下您的 提取前景的代码,CV小白想学习MATTING,感激不尽
可以参考作者的demo代码,https://github.com/LianShuaiLong/CV_Applications/tree/master/matting
[您好,我用了您的预训练模型直接进行预测matte,然后将matte作为mask与原图做“与"操作,发现效果很差,我是不是哪里操作不对啊? 这是我的代码,其中matting是利用预训练模型modnet_photographic_portrait_matting.ckpt预测得到的matte img = cv2.imread(image) matting = cv2.imread(matting,cv2.IMREAD_GRAYSCALE) masked = cv2.bitwise_and(img,img,mask=matting)