怎么使用opencv里面的轮廓函数(python)?

2025-11-10 11:43:11

1、把图片转为灰度图:

g = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

怎么使用opencv里面的轮廓函数(python)?

2、把灰度图二值化:

ret,g= cv2.threshold(g,200,255,0)

怎么使用opencv里面的轮廓函数(python)?

3、查看轮廓:

a,b,c = cv2.findContours(g,cv2.RETR_TREE,

                         cv2.CHAIN_APPROX_SIMPLE)

a是轮廓图;

b是轮廓边界的坐标(把曲线视为一组折线段)。

怎么使用opencv里面的轮廓函数(python)?

4、c不知道是什么。

怎么使用opencv里面的轮廓函数(python)?

5、绘制轮廓:

i = cv2.drawContours(im,b, -1, (255,0,0),1)

怎么使用opencv里面的轮廓函数(python)?

6、图片的矩:

cnt = b[0]

M = cv2.moments(cnt)

print(M)

M是一个字典。

怎么使用opencv里面的轮廓函数(python)?

7、用图片的矩,可以计算出轮廓的重心:

cx = int(M['m10']/M['m00'])

cy = int(M['m01']/M['m00'])

怎么使用opencv里面的轮廓函数(python)?

8、计算轮廓的面积:

area = cv2.contourArea(cnt)

也可以在轮廓的矩里面找:

area = M['m00']

怎么使用opencv里面的轮廓函数(python)?

怎么使用opencv里面的轮廓函数(python)?

9、计算轮廓周长:

l = cv2.arcLength(cnt,True)

怎么使用opencv里面的轮廓函数(python)?

10、绘制轮廓的凸包:

import cv2

im = cv2.imread('a.jpg')

g = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)

ret,g= cv2.threshold(g,200,255,0)

a,b,c = cv2.findContours(255-g,cv2.RETR_TREE,

                         cv2.CHAIN_APPROX_NONE)

hull = cv2.convexHull(cnt)

t = cv2.cvtColor(a, cv2.COLOR_GRAY2BGR)

i = cv2.polylines(im, [hull], True, (255, 0, 0), 2)

怎么使用opencv里面的轮廓函数(python)?

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