opencv - 在机器人导航中使用霍夫变换

标签 opencv hough-transform

我的目标是让自主机器人使用摄像头在有围墙的迷宫中导航。摄像头固定在机器人顶部并朝下,以便能够从上方查看墙壁和机器人。 enter image description here

根据我的经验,我采用的最直接的方法是

  1. 阈值图像以提取红墙
  2. 执行 Canny 边缘检测
  3. 使用霍夫变换从边缘检测强线

经过一些参数调整后如下所示 enter image description here

我想让机器人向前移动,避免“撞到”红墙。问题是从霍夫变换中检测到每个墙边缘有多条线。我的一个想法是执行 k-means 聚类以对线进行聚类并找到每个聚类的中心(均值),但我不知道墙边的数量(因此不知道要输入到 k-means 算法的聚类数量) 我会随时在迷宫中导航(前面的墙壁、后面的墙壁、多个转弯路口等)。

任何帮助找到一个好的方法来获得一致的墙壁位置以比较机器人的位置(在每个图像帧中总是固定的)与在迷宫中导航的任何时间都将不胜感激。我也愿意接受解决此问题的任何其他方法。

最佳答案

运行 skeletonization提取 HoughLines 之前的算法。

关于opencv - 在机器人导航中使用霍夫变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15670418/

相关文章:

opencv - 如何在 Visual Studio 2019 上的 Windows 10 中安装带有 contrib 模块的 OpenCV

python-3.x - 在1个视频上输出2个功能

c++ - MFC - 如何绘制彩色位图到对话框DC

c - 使用霍夫变换找直线,还需要跟踪在这些直线上找到的点

python - 在 Python (OpenCV) 中使用霍夫线变换从模拟时钟读取时间

python - 计算图像中对象的中心

python - 使用霍夫圈读取骰子的点

java - 我们可以在 android 上运行 opencv java 吗?

c - 如何在 OpenCV 中扭曲图像?

opencv - LINUX opencv霍夫变换圆