Open3d學習計畫 10(KDTree)

2021-10-08 19:18:39 字數 1797 閱讀 6121

open3d使用flann構建kdtree以便進行快速最近鄰檢索。

下面的**讀取乙個點雲並且構建乙個kdtree。這是下面最鄰近查詢的需處理步驟。

print

("testing kdtree in open3d ..."

)print

("load a point cloud and paint it gray."

)pcd = o3d.io.read_point_cloud(

"../../testdata/feature/cloud_bin_0.pcd"

)pcd.paint_uniform_color(

[0.5

,0.5

,0.5])

pcd_tree = o3d.geometry.kdtreeflann(pcd)

testing kdtree in open3d …

load a point cloud and paint it gray.

我們選擇了1500個點作為錨點(anchor point),並將其塗為紅色。

print

("paint the 1500th point red."

)pcd.colors[

1500]=

[1,0,0]

paint the 1500th point red.

類似的,我們能夠使用 search_radius_vector_3d 去查詢所有的和錨點距離小於給定半徑的點,將其塗成綠色。

除了knn搜尋(search_knn_vector_3d)和rnn搜尋(search_radius_vector_3d)以外,open3d還提供了混合搜尋函式(search_hybrid_vector_3d)。它最多返回k個和錨點距離小於給定半徑的最鄰近點。這個函式結合了knn和rnn的搜尋條件,在某些文獻中也被稱作rknn搜尋。在許多情況下它有著效能優勢,並且在open3d的函式中大量的使用.

Open3d學習計畫 1(簡介與安裝)

本文主要介紹什麼是open3d和python的安裝與測試。open3d是乙個開源庫,支援快速開發和處理3d資料。open3d在c 和python中公開了一組精心選擇的資料結構和演算法。後端是高度優化的,並且是為並行化而設定的。其核心特性包括 本部落格主要介紹open3d的python版本使用,更多資...

Open3D 獲取mesh屬性

首先看一下在cloudcompare軟體中的實現 mesh flag vertices 檢查網格的基本特性,為每個網格樣本做標誌 0 normal,1 border,2 non manifold 三角網格有幾個可以用open3d測試的屬性。乙個重要的屬性是流形性質 manifold property...

open3d函式教程學習(持續更新)

open3d的核心功能包括 3d資料結構 3d資料處理演算法 場景重建 表面對齊 3d視覺化 基於物理的渲染 pbr 在c 和python中可用 匯入open3d模組和列印出幫助資訊。import open3d as o3d pcd o3d.io.read point cloud testdata ...