def drawConvexHull(img, contours):
cnt = contours[0]
mask = np.zeros(img.shape, np.uint8)
hull = cv2.convexHull(cnt,returnPoints = False)
defects = cv2.convexityDefects(cnt,hull)
for i in range(defects.shape[0]):
s,e,f,d = defects[i,0]
start = tuple(cnt[s][0])
end = tuple(cnt[e][0])
far = tuple(cnt[f][0])
cv2.line(mask,start,end,[255,255,255],5)
cv2.circle(mask,far,5,[255,255,255],-1)
(x,y),radius = cv2.minEnclosingCircle(cnt)
center = (int(x),int(y))
radius = int(radius)
cv2.circle(mask,center,radius,(255,255,255),-1)
return mask
评论列表
文章目录