我的目标是让自主机器人使用摄像头在有围墙的迷宫中导航。摄像头固定在机器人顶部并朝下,以便能够从上方查看墙壁和机器人。
根据我的经验,我采用的最直接的方法是
- 阈值图像以提取红墙
- 执行 Canny 边缘检测
- 使用霍夫变换从边缘检测强线
经过一些参数调整后如下所示
我想让机器人向前移动,避免“撞到”红墙。问题是从霍夫变换中检测到每个墙边缘有多条线。我的一个想法是执行 k-means 聚类以对线进行聚类并找到每个聚类的中心(均值),但我不知道墙边的数量(因此不知道要输入到 k-means 算法的聚类数量) 我会随时在迷宫中导航(前面的墙壁、后面的墙壁、多个转弯路口等)。
任何帮助找到一个好的方法来获得一致的墙壁位置以比较机器人的位置(在每个图像帧中总是固定的)与在迷宫中导航的任何时间都将不胜感激。我也愿意接受解决此问题的任何其他方法。
最佳答案
运行 skeletonization提取 HoughLines 之前的算法。
关于opencv - 在机器人导航中使用霍夫变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15670418/