上图:
通过以下代码绘制出凸包形状:
import cv2
import numpy as np
import copy
img = cv2.imread(r'D:\python\python\opencv\exercise\shape.jpg')
img_copy = copy.deepcopy(img)
img2gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(img2gray,127,255,0)
contours,hierarchy = cv2.findContours(thresh,cv2.RETR_EXTERNAL,2)
print(len(contours))
for i in range(len(contours)):
print(i)
cv2.drawContours(img,contours,i,(0,0,255),2)
cv2.imshow('img',img)
k = cv2.waitKey(2000)
if k == 27:
break
img = copy.deepcopy(img_copy)
for i in range(len(contours)):
print(i)
print(cv2.isContourConvex(contours[i]))
hull = cv2.convexHull(contours[i])
cv2.polylines(img,[hull],True,(0,255,0),2)
cv2.imshow('img',img)
cv2.waitK