【发布时间】:2016-10-29 03:42:03
【问题描述】:
我正在使用 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)
它返回a contours array,长度为48。当我把它画出来时:
第一个问题是如何获得这个抓刀的轮廓(数组)?
第二个问题:如您所见,背景颜色为黑色。 如何将背景颜色更改为白色?
谢谢。
【问题讨论】:
-
我应该将
contours连接到一个合并列表中是否正确?
标签: python image opencv image-processing