XYZ 格式的点云生成以便在 GLAP 中使用
point cloud generation for XYZ-format in order to use in GLAP
据我所知,有一种 XYZ 格式:
x y z <--- 在一行中
和
x y z nx ny nz <--- 在一行中。
如果我只使用 x y z(没有法线),函数 CGAL::make_surface_mesh() 会非常慢。
从 PCD 格式 (PCL-lib) 检索法线的正确方法是什么?
或者如何手动生成(通过我自己的代码)?
估计法线有多种方法。一种可能性是将所有点插入 KdTree 中,然后从每个点获取一定数量的最近邻居。一旦获得最近的邻居,您可以将高阶曲面(二次曲面)拟合到这些点并计算其法线,或者您可以对这些点进行主成分分析并获取与最小特征值相关联的特征向量。这两种方法以及一些改进都在 CGAL 的点云处理包中实现:
http://doc.cgal.org/latest/Point_set_processing_3/index.html#Point_set_processing_3NormalEstimation
根据您的输入点集,不同的方法/调优会有不同的表现(可能需要实验/参数调优)。
注意:您也可以尝试那里可用的不同重建算法:
据我所知,有一种 XYZ 格式: x y z <--- 在一行中 和 x y z nx ny nz <--- 在一行中。
如果我只使用 x y z(没有法线),函数 CGAL::make_surface_mesh() 会非常慢。 从 PCD 格式 (PCL-lib) 检索法线的正确方法是什么? 或者如何手动生成(通过我自己的代码)?
估计法线有多种方法。一种可能性是将所有点插入 KdTree 中,然后从每个点获取一定数量的最近邻居。一旦获得最近的邻居,您可以将高阶曲面(二次曲面)拟合到这些点并计算其法线,或者您可以对这些点进行主成分分析并获取与最小特征值相关联的特征向量。这两种方法以及一些改进都在 CGAL 的点云处理包中实现:
http://doc.cgal.org/latest/Point_set_processing_3/index.html#Point_set_processing_3NormalEstimation
根据您的输入点集,不同的方法/调优会有不同的表现(可能需要实验/参数调优)。
注意:您也可以尝试那里可用的不同重建算法: