首页 > 解决方案 > 如何使用 OpenCV 测量齿轮的尺寸

问题描述

我正在做一个必须测量齿轮尺寸的项目。我已经找到了齿轮的轮廓和齿轮的齿。现在我想以 100% 的准确度测量它的真实世界尺寸齿轮的真实世界尺寸是外径 53 毫米,内径 43 毫米,齿尺寸是 5 毫米,如果我卸下这个齿轮并放置大齿轮,它也会测量它的正确直径

我的图片在这里

# count outer teeth
c = max(max_c, key=cv2.contourArea)
hull = cv2.convexHull(c, clockwise=True, returnPoints=False)
hull1 = []
for i in hull:
    if len(hull1) == 0:
        hull1.append(i)
    else:
        last = hull1[-1]
        diff = c[i] - c[last]
        if cv2.norm(diff) > 10:
            hull1.append(i)
hull1 = np.asarray(hull1)
hull2 = hull1[:-1].copy()

# count inner teeth
defects = cv2.convexityDefects(c, hull2)
#print(defects)
inner_points = []
for i in range(defects.shape[0]):
    s, e, f, d = defects[i, 0]
    far = tuple(c[f][0])
    #print(far)
    inner_points.append(f)

标签: pythonopencv

解决方案


推荐阅读