切除点云的一部分

问题描述 投票:1回答:1

我有一个Intel D415深度相机,想识别机器人路径中的障碍物。我要将点从cam pc =(102720,3)减少到机器人必须经过的矩形区域

我想出了这个列表理解,p [0]是x轴,p [2]的距离和值以米为单位,机器人需要大约1米的“门”,并且我将距离限制为2米。

inPathPoints = np.asarray([p for p in pc if p[0] > -0.5 and p[0] < 0.5 and p[2] > 0.2 and p[2] < 2])

在我的笔记本电脑上,cProfile显示此评估的运行时间为0.25秒。

由于机器人在移动时需要检查障碍物,因此我想重复此检查大约5..10次第二。有什么提示我可以尝试加快速度吗?

python-3.x list-comprehension point-clouds
1个回答
0
投票

代替列表理解,使用numpy并提出以下语句:

inPathPoints = pc[(pc[:, 0] > -0.5) & (pc[:, 0] < 0.5) & (pc[:, 2] > 0.2) & (pc[:, 2] < 2)]

这是如此之快,甚至没有显示在配置文件输出中。

© www.soinside.com 2019 - 2024. All rights reserved.