目录
1.点云基本操作
读入点云
pcd = o3d.io.read_point_cloud("tree1.pcd")
输出点云
o3d.io.write_point_cloud("copy_of_fragment.pcd", pcd)
点云显示-规定多大窗口
o3d.visualization.draw_geometries([pcd],width=800,height=800)
显示不同颜色
pcd.paint_uniform_color([0, 1, 0])
2.临近点搜索-KD树
构建Kd-Tree
pcd_tree = o3d.geometry.KDTreeFlann(pcd)#建立KD树索引
KNN搜索-pcd.points
[k, idx, _] = pcd_tree.search_knn_vector_3d(pcd.points[200], 100)#K近邻搜索,pcd.point[200]为选取的中心点,100为距离中心点最近的100个点。
np.asarray(pcd.colors)[idx[1:], :] = [0, 1, 0]#K邻域的点,渲染为绿色
半邻域搜索
[k1, idx1, _] = pcd_tree.search_radius_vector_3d(pcd.points[1500], 0.02)#半径搜索
np.asarray(pcd.colors)[idx1[1:], :] = [0, 0, 1]#半径搜索结果并渲染为蓝色
混合搜索
[k2, idx2, _] = pcd_tree.search_hybrid_vector_3d(pcd.points[3000], 0.05,200)#K近邻搜索
np.asarray(pcd.colors)[idx2[1:], :] = [0, 1, 0.8]#半径搜索结果并渲染为青色