algorithm - 我应该怎么做才能学习如何从点云中检测球体?
问题描述
我有一个项目,我的团队应该实现一个关于从点云检测球体的算法,但我真的不知道如何开始它以及我可以从哪里学习这些知识。你能给我推荐一些相关的文章或论文吗?非常感谢!
解决方案
定期传播?
您可以尝试PCA并查看协方差矩阵的特征值。如果它们大致相同,则这意味着数据在每个方向上的分布大致相同。这意味着它可能是一个球体,但也可能是一个立方体......
球体与立方体
如何判断它是球体还是立方体?这是相当艰难的。我唯一能想到的就是在几个不同的方向上从中心到最远的点的距离,看看它们是否都大致相同(低方差),那么它很可能是一个球体。如果距离变化很大,也许你得到的角或边更靠近中心,那么它可能是一个立方体(或者可能是其他多边形)。
CV 中的球体
与此相关的是(圆形)霍夫变换,它在计算机视觉中用于检测圆形。基本上可以对边缘进行一种极坐标变换,也可以找到线条。
如何找到要测试的内容
如何找到要看的点?您可以尝试某种聚类,例如 k-means。如果您不知道有多少集群,DBSCAN很有趣,可能值得一试。基本思想是获取这些点并在它们周围展开 ε 球,以查看它们连接到的其他球。最终,大多数事物都是相互关联的,并且您拥有集群和异常值。
推荐阅读
- php - PHPUnit 测试未使用带有 SQLite 数据库的 laravel 6.0 运行
- javascript - 如何在 Jinja2 中动态设置 HTML 表单操作 url?
- python - 我试图替换字符串中的所有字符,但它仍然没有按预期工作?
- python - 如何在 Snakemake 规则中使用 dict 值和键
- list - Ocaml 将值附加到数组
- scala - 未找到合并策略
- asp.net - 如何在 angularJs 中添加 WebApi 标头
- flutter - 在 Flutter 中展开部分
- web-scraping - Scrapy Spider 如何避免当前页面和下一页之间的无限循环
- php - wordpress 网站加载时显示错误