opencv - 如何使用openCV识别连接组件的最窄部分?
解决方案
一个真正通用且相当稳健的方法是使用侵蚀和流域转换:
- 用大小为 k 的方形内核腐蚀二值图像
- 检查组件的数量。如果组件数 < 2,则设置 k = k + 1 并从步骤 1 开始重复。
这最终将导致 2 个(或更多)分离的组件。现在:
- 使用组件作为您在上一步中收到的标签计算分水岭转换的标记。
- 使用标记执行基于标记的分水岭转换并获取不同的组件,包括每个组件的边界。
有关代码参考,您可能需要查看OpenCV 中的这个分水岭分割指南。它们的用例与您自己的应用程序非常相似。
推荐阅读
- python - 有没有办法从 PHP 7.4.7 调用 Python3 函数?
- python - 如何拆分数据集并将其与 LSTM seq2seq 模型一起使用?
- javascript - 在 js 文件中使用 vuejs mixins
- sql-server - 如何在 SQL Server 中使用 SEQUENCE PK 列创建临时表
- rest - ColdFusion 上的 PayPal 付款 REST API
- vim - 如何在 mac 上正确安装 YouCompleteMe?
- matplotlib - 设置 matplotlib 刻度
- python - 如何在没有不必要反射的情况下使用 SQLAlchemy 删除和重新创建表?
- sql-server - 无法连接到 SQL Server 2019 localdb
- javascript - 在我的计算机上运行 Node.js Discord 机器人时出现错误女巫 416 状态代码