怎么使用opencv里面的轮廓函数(python)
1、把图片转为灰度图:g = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
2、把灰度图二值化:ret,g= cv2.threshold(g,200,255,0)
3、查看轮廓:a巳呀屋饔,b,c = cv2.findContours(g,cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)a是轮廓图;b是轮廓边拦轮遛侦界的坐标(把曲线视为一组折线段)。
4、c不知道是什么。
5、绘制轮廓:i = cv2.drawContours(im,b, -1, (255,0,0),1)
6、图片的矩:cnt = b[0]M = cv2.moments(cnt)print(M)M是一个字典。
7、用图片的矩,可以计算出轮廓的重心:cx = int(M['m10'觥终柯计]/M['m00'])cy = int(M['m01']/M['m00'])
8、计算轮廓的面积:area = cv2.contourArea(cnt)也可以在轮廓的矩里面找:area = M['m00']
9、计算轮廓周长:l = cv2.arcLength(cnt,True)
10、绘制轮廓的凸包:import cv2im = 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)