我已尽力了解如何使用 OpenCV 进行线检测。但是,我找不到我正在寻找的示例。我想用它在简单的二维点云中找到线。作为测试,我想使用以下几点:
import random
import numpy as np
import matplotlib.pyplot as plt
a = np.random.randint(1,101,400) # Random points.
b = np.random.randint(1,101,400) # Random points.
for i in range(0, 90, 2): # A line to detect
a = np.append(a, [i+5])
b = np.append(b, [0.5*i+30])
plt.plot(a, b, '.')
plt.show()
我发现了很多关于 Hough Tranform 工作原理的初始示例。但是,当涉及到代码示例时,我只能发现使用了图像。
有没有办法使用 OpenCV 霍夫变换来检测一组点中的线,或者你能推荐任何其他方法或库吗?
- - 编辑 - -
在阅读了一些很棒的答案之后,我觉得我可以描述我打算更好地使用它的目的。我有一个高分辨率 2D 激光雷达,需要从数据中提取墙壁。典型扫描可能如下所示:
在我做了更多研究之后,我怀疑霍夫变换在这种情况下不是最适合使用的。关于我应该寻找什么的任何提示?
(如果有人感兴趣,可以使用 LiDAR 和墙壁提取来生成地图和导航机器人。)
谢谢,雅各布