图中有三个物体。我们要在图中,画出这三个物体各自的凸包。工具是电脑、opencv-python、python3.6。
工具/原料
1
电脑
2
python3.6
方法/步骤
1
绘制轮廓:import cv2img = cv2.imread('0.png')img0=cv2.cvtColor(255-img,cv2.COLOR_BGR2GRAY)_, t = cv2.threshold(img0, 0, 255, cv2.THRESH_BINARY)_, c, _ = cv2.findContours(t, 3, 2)for cnt in c: cv2.drawContours(img,c,-1,(255,0,0),2)cv2.imwrite('00.png',img)255-img是为了取反色图片。
2
图中有三个物体,且没有空洞,所以,len(c)=3。单独画出第一个物体的凸包:hull = cv2.convexHull(c[0]) cv2.polylines(img,[hull],True,(500,255,0),2)
3
第二个物体的凸包是:hull = cv2.convexHull(c[1])
4
第三个物体的凸包:hull = cv2.convexHull(c[2])
5
用for循环,来画出所有物体的凸包:for cnt in c: hull = cv2.convexHull(cnt) cv2.polylines(img,[hull],True,(500,255,0),2)