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

2025-11-21 15:15:34

1、绘制轮廓:

import cv2

img = 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是为了取反色图片。

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

2、图中有三个物体,且没有空洞,所以,len(c)=3。

单独画出第一个物体的凸包:

hull = cv2.convexHull(c[0])

    

cv2.polylines(img,[hull],True,(500,255,0),2)

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

3、第二个物体的凸包是:

hull = cv2.convexHull(c[1])

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

4、第三个物体的凸包:

hull = cv2.convexHull(c[2])

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

5、用for循环,来画出所有物体的凸包:

for cnt in c:

    hull = cv2.convexHull(cnt)

    cv2.polylines(img,[hull],True,(500,255,0),2)

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

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢