问题描述
我需要从 3D 点云 (z=f(x,y)
) 插入一个平滑的表面,我发现 scipy 的 interp2d 函数使用三次样条提供了非常令人满意的结果。不幸的是,我正在开发的软件是用 C# 编写的,每次需要处理数据时都调用 Python 程序效率低下。
我查看了 scipy 的源代码,似乎 interp2d 依赖于一些用 Fortran 编写的 FITPACK 例程。我过去曾使用过 BLAS/LAPACK 的包装器,但在这里我找不到任何提供 3D 样条插值的 C#/.NET 库,要么依赖于 FITPACK,要么直接在 C# 中实现。实际上,我根本找不到此类计算的任何实现(在 scipy 中除外),这很令人惊讶。
Math.NET Numerics 提供基于样条的插值,但仅限于 2D (y=f(x)
)。 ILNumerics 似乎提供了 3D 插值,但它是一个付费库。
我觉得我错过了一些东西。是否有 C# 中的任何开源库(甚至是 C、Java 中的任何语言)来实现 scipy 的 interp2D 使用的算法?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)