从点云的索引向量中获取坐标向量
Obtaining a vector of coordinates from a vector of indexes from a point cloud
我正在修补 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:], :]
就像我为每个点着色一样。
虽然我设法得到了我想要的东西,但我希望看到任何其他有用的答案或实际的最佳答案以继续学习。谢谢!
我正在修补 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:], :]
就像我为每个点着色一样。
虽然我设法得到了我想要的东西,但我希望看到任何其他有用的答案或实际的最佳答案以继续学习。谢谢!