1

我有一个关于使用什么方法来平滑 3D (xyz) 网格的一般性问题。

我的程序有使用立体视觉方法获得的大型 3D 点矩阵。结果的形状总是有点像半球形,但由于我想消除的立体视觉错误,它有皱纹。

问题是,怎么做?现在我已经开发了一半的方法来解决问题,但我认为可能有更好的方法。

我的实际想法是使用 Hermite 方法。这个想法是:

  1. 取所有 XY 并在两个方向上平滑 -> XYnew 和 XnewY

  2. 将 Hermite 线转换为 Bezier 线并找到 XYnew 和 XnewY 之间的交叉点,具有新点。(重复所有点,通常为 2000)

  3. 使用具有 XYZnew 的 Hermite XYZ 平滑。

现在我已经在 C++ 中实现了 Hermite 表面平滑和 Hermite 线平滑,但中间部分并不像预期的那么容易。

无论如何,我的问题是,这是一种正确的方法还是有另一种可能更好的方法?

当然想法是消除立体视觉方法产生的误差,这不是计算机图形问题,更多的是数据处理问题

附录:

起初我认为 Z 平滑就足够了,但显然不是,还有很多 XY 误差。在下面的图像中,您可以看到 Z 拟合工作,但它仍然非常粗糙,如在 2 图像中可以看到的那样。(颜色是变形的,应该是相当连续的) 没有 Z 平滑的图像 在此处输入图像描述

4

1 回答 1

2

除非你有更好的先验,否则很难击败经典的陶宾算法: http: //mesh.brown.edu/taubin/pdfs/taubin-iccv95a.pdf

于 2012-10-04T21:05:55.737 回答