簡體   English   中英

搶切算法后如何將生成的前景顏色更改為白色?

[英]how to change the color of the resulting foreground to white color after grabcut algorithm?

這是抓取算法的以下代碼。 我想用白色代替原來的顏色得到結果。 這是從鏈接的以下代碼獲得的輸出。

在此處輸入圖片說明

import numpy as np

import cv2
from matplotlib
import pyplot as plt

img = cv2.imread('messi5.jpg')
mask = np.zeros(img.shape[:2],np.uint8)
bgdModel = np.zeros((1,65),np.float64)
fgdModel = np.zeros((1,65),np.float64)
rect = (50,50,450,290)
cv2.grabCut(img,mask,rect,bgdModel,fgdModel,5,cv2.GC_INIT_WITH_RECT)
mask2 = np.where((mask==2)|(mask==0),0,1).astype('uint8')
img = img*mask2[:,:,np.newaxis]
plt.imshow(img),plt.colorbar(),plt.show()

在此行cv2.grabCut(img,mask,rect,bgdModel,fgdModel,5,cv2.GC_INIT_WITH_RECT) ,您將獲得具有4個不同值的單個通道掩碼,即:

  • GC_FGD = 0
  • GC_BGD = 1
  • GC_PR_FGD = 2
  • GC_PR_BGD = 3。

要從該掩碼中獲取二進制掩碼,您需要使用值255替換GC_FGD = 0GC_PR_FGD = 2 ,可以通過以下方式完成:

mask2 = np.where((mask==2)|(mask==0), 0, 255).astype('uint8')

跳過乘法步驟,您將二進制掩碼存儲在mask2中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM