小编Jak*_*kas的帖子

使用OpenCV Hough变换在2D点云中进行线检测

我已尽力找出如何使用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()
Run Code Online (Sandbox Code Playgroud)

我已经找到了有关霍夫变换如何工作的许多初始示例。但是,当涉及到代码示例时,我只能发现已使用图像。

有没有一种方法可以使用OpenCV Hough变换来检测一组点中的线,或者可以推荐其他方法或库吗?

----编辑----

阅读了一些很好的答案之后,我觉得我应该描述一下我打算使用它的目的。我有高分辨率的2D LiDAR,需要从数据中提取墙。打字扫描如下所示: 在此处输入图片说明

“正确的输出”如下所示: 在此处输入图片说明

在进行了更多研究之后,我怀疑霍夫变换在这种情况下使用效果不佳。关于我应该寻找的任何提示?

(如果有人感兴趣,可以使用LiDAR和墙面提取来生成地图并导航机器人。)

谢谢,雅各布

python opencv image-processing line computer-vision

6
推荐指数
1
解决办法
280
查看次数

在Python中组合两个字节

我遇到一个问题,我得到两个字节表示为 0-255 之间的 int,两个字节应该表示一个值。现在我正在这样做,但这需要很长时间。有小费吗?

bin_string = '0b' + bin(int(second_byte))[2:].zfill(8) + bin(int(first_byte))[2:].zfill(8)
result = float(literal_eval(bin_string))

example: 
203 -> 11001011
101 -> 01100101
-> 1100101101100101 -> 52069
Run Code Online (Sandbox Code Playgroud)

我觉得可能有一个简单的数学公式,但我似乎无法弄清楚......

python

3
推荐指数
1
解决办法
2966
查看次数

标签 统计

python ×2

computer-vision ×1

image-processing ×1

line ×1

opencv ×1