簡體   English   中英

從點雲的索引向量中獲取坐標向量

[英]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:], :]

就像我為每個點着色所做的那樣。

盡管我設法得到了我想要的東西,但我希望看到任何其他有用的答案或實際的最佳答案以繼續學習。 謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM