python - 二维点云中的线检测
问题描述
我正在开发一个更大的自动导航车辆导航和定位系统,但偶然发现了一个问题。开发地图时,重要的部分是找到墙壁。导航是使用 LiDAR 单元完成的。
我已经看了很多霍夫变换和 RANSAC 算法,但据我所知,霍夫变换用于图像,这对我的情况不是最佳的,而且 RANSAC 不适合在稀疏数据中查找多个墙。
此特定示例中使用的数据可在此链接中找到:https ://drive.google.com/file/d/1EnSOr2FYjIdqG1RdFgTkgsoEhVcG7Tl_/view?usp=sharing 其中文件中的两个数组表示 x 和 y 坐标,其中元素按索引对应。
我在 python 中开发,但如果有人知道一个合适的算法,但我自己编写算法是没有问题的,而该算法在包中没有。
提前感谢,雅各布
解决方案
最初的问题可能有点晚了,但我相信更多的人会想要解决同样的问题。
霍夫变换可以很好地在点云上完成,但是我不知道有现成的库实现。
这是一个带有完整解释和源代码的优秀示例:Processing LIDAR data using a Hough Transform
如果您了解Hough 变换的工作原理并查看代码,您将看到它如何遍历点并在特征空间中创建二维直方图。实现这样的东西非常简单。
推荐阅读
- r - 如何为不同的变量合并具有不同事件日期的数据集?
- android - 我有 recycleview,其中包含 4000 个数据,当它加载应用程序没有响应时
- python - Python SQLAlchemy create_Engine 错误“连接超时”
- php - API发送zip文件作为响应,如何将响应保存到zip文件并将其存储在服务器文件夹中?
- swift - 找不到交互视图的键盘场景委托
- c# - 在 Helix Toolkit 中更改相机外观后,单击事件停止工作
- css - 我应该如何调整 mat-form-field mat-chip 的大小?
- c# - 在类中创建自己的鼠标事件
- create-react-app - 使用 Create React App 进行条件编译
- go - 如何清除会话并在登录后仅访问关于页面?