微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从点云的索引向量中获取坐标向量

如何解决从点云的索引向量中获取坐标向量

我在修改 open3d 时发现自己有一个由半径搜索得到的每个点的索引构成的向量,它看起来有点像这样:

[1500,1497,1509,1503,1499,1555,1557,...,1565]

我想用该列表中每个点的坐标创建另一个向量,知道我可以通过这样做获得点坐标:

pcd.points[index]

我想要达到的最终结果看起来有点像这样:

[[0.65234375 0.84686458 2.37890625],[0.65234375 0.83984375 2.38430572],[0.66737998 0.83984375 2.37890625],...
 [2.00839925 2.39453125 1.88671875],[2.00390625 2.39488506 1.88671875],[2.00390625 2.39453125 1.88793314]]

我知道这可能是一个基本问题,但我一直试图解决这个问题几个小时,但我发现自己被屏蔽了。

现在,如果有人想获得更多上下文,这就是我现在正在使用的代码

mesh = o3d.io.read_triangle_mesh("ModelNet10/chair/test/chair_0890.off")
pcd = o3d.geometry.TriangleMesh.sample_points_uniformly(mesh,5000)
pcd_tree = o3d.geometry.KDTreeFlann(pcd)
[k,idx,_] = pcd_tree.search_radius_vector_3d(pcd.points[1500],2)

我希望能够获取来自半径搜索的向量,并将来自该半径搜索的每个点的坐标放入向量中,以便我可以使用它。

解决方法

在用头撞显示器后,我发现我的答案就在我眼前,但我很顽固地以一种我什至想都想不出来的方式来解决它。

我唯一需要做的就是

points = o3d.np.asarray(pcd.points)[idx[1:],:]

就像我为每个点着色一样。

虽然我设法得到了我想要的东西,但我希望看到任何其他有用的答案或实际的最佳答案以继续学习。谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。