open3d.geometry.Octree
的value
是一个包含每个叶子节点值的numpy数组。
值的类型可以是任何可以放入numpy数组的类型。常见的类型包括浮点数(float
),整数(int
),布尔值(bool
)等。
值的大小等于叶子节点数量,Octree
的深度取决于点云的大小和分辨率以及设置的参数。
可以使用Octree
的get_leaf_node_values()
方法来获取值。该方法返回一个形状为(n_leaf_nodes,)
的numpy数组,其中n_leaf_nodes
是叶子节点的数量。
import open3d as o3d
import numpy as np
pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(np.random.rand(100, 3))
octree = o3d.geometry.Octree(max_depth=2)
octree.convert_from_point_cloud(pcd)
values = octree.get_leaf_node_values()
可以使用Octree
的set_leaf_node_values()
方法来设置值。该方法需要传入一个形状为(n_leaf_nodes,)
的numpy数组,其中n_leaf_nodes
是叶子节点的数量。
import open3d as o3d
import numpy as np
pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(np.random.rand(100, 3))
octree = o3d.geometry.Octree(max_depth=2)
octree.convert_from_point_cloud(pcd)
values = np.random.randint(0, 10, size=(octree.get_num_leaf_nodes(),))
octree.set_leaf_node_values(values)
注意,调用set_leaf_node_values()
方法后,Octree
的状态会被更新,叶子节点的值将被修改。