BLUE 颜色表示前景的用户掩码, GREEN 颜色表示用户的背景遮罩,我得到以下结果。实际上只有面具的背景标记输出为背景:
Screenshot http://s7.postimg.org/xwa8z5nez/maradona_problem.png]
蓝色标记在掩码中保存为0,而绿色标记保存为1。
这是我的代码。你能帮忙吗?
def run_grabcut():
global output
global mask
bgdmodel = np.zeros((1, 65),np.float64)
fgdmodel = np.zeros((1, 65),np.float64)
cv2.grabCut(img, mask, None, bgdmodel, fgdmodel, 1, cv2.GC_INIT_WITH_MASK)
mask2 = np.where((mask == 0), 255, 0).astype('uint8')
cv2.bitwise_and(img ,img , output, mask = mask2)
答案 0 :(得分:0)
在第
行mask2 = np.where((mask == 0), 255, 0).astype('uint8')
您将所有背景像素(mask == 0)映射到值255,将所有其他类型(例如foreground; mask == 1)映射到值0
添加
mask3 = np.where((mask == 1), 127, 0).astype('uint8')
会为前景创建一个单独的掩码。这是你在找什么?
或者您是否还希望包含潜在背景(mask == 2)
mask2 = np.where((mask==0) + (mask==2),255,0).astype('uint8')