我正在使用Python和OpenCV。我現在使用grabcut()
來裁剪出我想要的物體。這裏是我的代碼:Python中的OpenCV grabcut()背景顏色和輪廓
img = cv2.imread('test.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
mask = np.zeros(img.shape[:2], np.uint8)
bgdModel = np.zeros((1, 65), np.float64)
fgdModel = np.zeros((1, 65), np.float64)
rect = (2,2,630,930)
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]
之後,我試圖找出輪廓。
我曾嘗試下面的代碼,以查找輪廓:
imgray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(imgray,127,255,0)
im2, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
而且它與長度48
返回a contours array
。當我畫出這個:
第一個問題是我怎樣才能得到這個抓取輪廓(陣列)?
第二個問題:如您所見,背景顏色爲黑色。 如何將背景顏色更改爲白色?
謝謝。
採取信息都是正確的,我應該串聯了'contours'到一個合併的名單? – VICTOR