pyntcloud 从具有法线的点云到多面体
pyntcloud to polyhedral from pointcloud with normals
我有一个点云,我将它作为一系列点导入到 pyntcloud 库中,它是一个全 3D 点云,因为它的边界形成了一个体积。
points = pd.DataFrame(points)
points.columns = ['x', 'y', 'z']
cloud = PyntCloud(points)
我计算法线
k_neighbors = cloud.get_neighbors(k=10)
cloud_norm=cloud
cloud_norm.add_scalar_field("normals", k_neighbors=k_neighbors)
我想生成一个实体对象,最好是多面体,我查看了 CGAL 绑定和 pymesh,但没有找到可行的解决方案。有什么想法吗?
数据结构如下
cloud.points
x y z nx(11) ny(11) nz(11)
0 991.538025 267.574707 191.911194 -0.065332 -0.106776 0.992134
1 991.545227 267.598602 191.912704 -0.157886 0.069813 0.984986
2 991.546570 267.587189 191.913498 -0.124825 -0.085891 0.988454
3 991.548889 267.565887 191.910797 -0.082405 -0.210254 0.974168
4 991.549805 267.563507 191.911499 -0.094382 -0.256764 0.961855
5 991.552124 267.624298 191.910599 -0.192515 0.238861 0.951779
CloudCompare 有一个插件可以做到这一点。它使用 "Poisson reconstruction" 的开源插件,请参阅 https://www.cs.jhu.edu/~misha/Code/PoissonRecon/Version12.00/
它生成 .ply 文件。
我有一个点云,我将它作为一系列点导入到 pyntcloud 库中,它是一个全 3D 点云,因为它的边界形成了一个体积。
points = pd.DataFrame(points)
points.columns = ['x', 'y', 'z']
cloud = PyntCloud(points)
我计算法线
k_neighbors = cloud.get_neighbors(k=10)
cloud_norm=cloud
cloud_norm.add_scalar_field("normals", k_neighbors=k_neighbors)
我想生成一个实体对象,最好是多面体,我查看了 CGAL 绑定和 pymesh,但没有找到可行的解决方案。有什么想法吗?
数据结构如下
cloud.points
x y z nx(11) ny(11) nz(11)
0 991.538025 267.574707 191.911194 -0.065332 -0.106776 0.992134
1 991.545227 267.598602 191.912704 -0.157886 0.069813 0.984986
2 991.546570 267.587189 191.913498 -0.124825 -0.085891 0.988454
3 991.548889 267.565887 191.910797 -0.082405 -0.210254 0.974168
4 991.549805 267.563507 191.911499 -0.094382 -0.256764 0.961855
5 991.552124 267.624298 191.910599 -0.192515 0.238861 0.951779
CloudCompare 有一个插件可以做到这一点。它使用 "Poisson reconstruction" 的开源插件,请参阅 https://www.cs.jhu.edu/~misha/Code/PoissonRecon/Version12.00/ 它生成 .ply 文件。