我正在做表面重建的工作。但我遇到了一个问题:
我想在泊松中使用DIRICHLET边界条件,但pcl的泊松似乎不支持指定边界条件,它总是使用NEUMANN边界条件。
所以我想知道如何在 pcl poisson 中使用 DIRICHLET 边界条件。
BTW:我的目标是计算容器的体积。但我的点云不是无懈可击的,所以我需要算法来“成像”孔的表面。 CloudCompare支持指定边界条件,并且效果很好。但在pcl中,NEUMANN边界条件的效果很糟糕。
原始的 PoissonRecon 代码位于 此 github 存储库。您还可以找到窗口命令行的预构建可执行文件(
--bType
设置条件)。从版本 9.0 开始,这在命令行可执行文件中可用。
[--bType ] 该整数指定边界类型 有限元。有效值为: 1:自由边界约束 2: Dirichlet边界约束3:Neumann边界约束 该参数的默认值为 3 (Neumann)。
CloudCompare 使用版本 7。
PCL(在本文发布时为 1.12.0)使用 PoissonRecon版本 4。
Open3D(在本文发布时为 0.14.1)包含版本 12 的 包装器,它支持两种边界条件。然而,使用 NEUMANN 是硬编码的。您应该能够轻松更改枚举并编译使用 DIRICHLET 条件的 Open3D 版本(我自己从未尝试过)。
或者(如果您无法使用原始控制台应用程序或重新编译 Open3D),您可以尝试使用已有的内容。