python - 如何使用 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)
解决方案
推荐阅读
- java - android.R.anim.fade_out 不好用,只是淡入工作
- asp.net - 使用 Serilog 输出到具有指定文件名的多个文件?
- r-markdown - 在 YAML Header 中的 pdf_document 下设置 citation_package 选项并使用 rmarkdown::pdf_document 函数
- rx-java - 在不同的计算上下文的情况下如何避免订阅订阅
- java - 将 JPanel 从其他类添加到 JPanel
- swift - 如何将现有代码添加到故事板骨架 UI?
- python - 如何将 IB 位置数据导出到数据框?
- c# - ReadStringAsSync() 只返回部分内容
- wordpress - Woocommerce 添加到购物车重定向到结帐不起作用
- c# - 如何从 Windows 窗体打印明文?