我也有类似的问题,比如链接。但是,我用PCL中的泊松重建算法代替了MeshLab来重建一个盒子。我得到了一个有扩展曲面的网格,如图中所示,我现在想移除扩展的曲面。
我不明白上述问题的答案,我不想修改PCL的源代码。还有别的办法解决这个问题吗?我电脑里的PCL版本是1.10。
如有任何建议,将不胜感激。
发布于 2020-11-26 22:17:00
正如链接中的答案所提到的,这个工件是Neumann边界条件的结果。然而,PCL不允许您指定边界条件。
最初的PossionRecon库 ( PCL实现所基于的)确实允许您指定边界条件,并且有二进制可执行文件可用。上面的链接还包括对所有命令行参数的详细描述。
不过,请注意,Dirichlet边界条件创建了一个水密的表面,所以您仍然会有“想象”的脸,其中有丢失的数据。
“想象”表面的特点是顶点密度低,可以用来移除这些面。PossionRecon还提供了一个SurfaceTrimmer可执行文件(参见上面的链接)。它要求PLY具有一个密度属性,您可以通过使用PossionRecon工具和--density
选项获得这个属性。
或者,您可以用面的面积近似顶点的密度,并编写自己的代码来删除大面积的面。
https://stackoverflow.com/questions/65018038
复制相似问题