我手头的任务是在点云中找到特定的轮廓。需要尽可能准确地确定它们。因此必须使用高阶多项式插值。我有由网格中的点组成的数据,每个点都有自己的高度。
我用matplotlib.contours函数找到轮廓非常成功。然后我直接用matplotlib.cntr(C++算法)来确定具体的轮廓。但由于该文件使用行进平方算法(线性插值),找到轮廓的精度不够好。
我正在寻找解决此问题的替代方法。一个建议的解决方案是
- 使用双三次插值来查找特定点周围的解析函数。
- 其次是函数导数的计算。
- 然后使用导数函数来确定导数保持在 0 的方向(使用点作为视点)。通过在该方向移动一小段距离,高度应保持不变。
使用这个算法应该找到一个轮廓。这个算法会起作用吗,在实现它时我可以走捷径吗(通过使用已经实现的功能)?
实现这个算法需要我付出相当大的努力,而且它可能只在理论上有效。我猜数字误差应该仍然存在(导数可能不完全是 0)并且最终甚至可能超过当前误差(使用行进方块)。我想考虑其他更简单、更快的方法来解决这个问题。
还有什么其他算法可以用来解决它?
有没有人遇到过类似的问题?你是怎么解决的?