pcl泊松曲面重建中如何指定边界条件为DIRICHLET?

How to specify boundary condition as DIRICHLET in pcl poisson surface reconstruction?

我正在做表面重建的工作。但是我遇到了一个问题:

我想在泊松中使用DIRICHLET边界条件,但是pcl的泊松似乎不支持指定边界条件,它总是使用NEUMANN边界条件。

所以我想知道如何在 pcl 泊松中使用 DIRICHLET 边界条件。

BTW:我的目标是计算容器的体积。但是我的点云不是无懈可击的,所以我需要 'image' 孔表面的算法。 CloudCompare 支持指定边界条件,效果很好。但是在pcl中,NEUMANN边界条件的效果很糟糕

原来的PoissonRecon代码是at this github repository。您还可以找到 window 命令行的预构建可执行文件(--bType 以设置条件)。这在 9.0 版开始的命令行可执行文件中可用。

[--bType ] This integer specifies the boundary type for the finite elements. Valid values are: 1: Free boundary constraints 2: Dirichlet boundary constraints 3: Neumann boundary constraints The default value for this parameter is 3 (Neumann).

CloudCompare uses version 7.

PCL(此时post的1.12.0)使用version 4 of PoissonRecon.

Open3D(当前为 0.14.1 post)包含一个 wrapper over version 12, which supports both boundary conditions. It is however hard-coded to use NEUMANN。您应该能够轻松更改枚举并编译使用 DIRICHLET 条件的 Open3D 版本(我自己从未尝试过)。


或者(如果您不能使用原始控制台应用程序或重新编译 Open3D),您可以尝试使用现有的。

  1. 您可以尝试根据人脸的面积(密度较小-三角形面积较大)来识别“假想人脸”并将其去除。 original repository 提供了一个 SurfaceTrimmer 工具(另一个控制台项目)来执行此操作(基于密度值)。
  2. 使用一些孔关闭方法或凸包关闭剩余的开放网格。