python - OpenCV轮廓精确的宽度和长度
问题描述
我试图找出轮廓的确切长度和宽度。基本上我想找出划痕和它们的确切长度。参考下图: 在此处输入图片描述
谁能告诉我如何找到这些裂缝的确切厚度。我已经尝试使用 boundingrect() 函数来检索宽度和高度,但这并不能达到目的,因为它对划痕线不准确。我在想是否可以找到绘制轮廓的临时实现,因为 drawcontours() 能够准确地绘制它们。任何人??
解决方案
我认为没有一种解决方案可以开箱即用地获得您想要的东西,但是由于这些划痕只是两条线彼此非常接近,因此您可能会通过使用弧长功能非常接近您需要的东西轮廓:
perimeter = cv2.arcLength(cnt,True)
length = perimeter / 2;
您可以使用轮廓的其他特征和属性来尝试自己计算确切的长度。像极值点和像素点这样的属性浮现在脑海中。您可以从文档中找到有关这些的更多信息。
推荐阅读
- css - CSS 显示/隐藏 Div 兄弟元素
- java - 使用 Spring Boot 对数据库的错误查询
- google-cloud-functions - 谷歌云函数 - 用回调调用另一个
- c# - 从其他列表添加列表
- python - 用于变量声明的 Python 版本的 ifelse
- java - JavaFX 阻止非 UI 线程,直到 GUI 完成更新(在暂停转换中)
- javascript - 为什么我的 JSON 无效,即使它看起来正确?
- sql-server - UPDATE 表中多行的多个数组时性能不佳
- python - 在 SQLAlchemy 中,如何返回 ResultProxy 而不是列表?
- generics - 使用模板类定义列表时出错