多语言展示
当前在线:982今日阅读:195今日分享:14

opencv轮廓检测——绘制物体的凸包

图中有三个物体。我们要在图中,画出这三个物体各自的凸包。工具是电脑、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)

推荐信息