将表面拟合到java中的3D数据点集合

时间:2013-03-03 20:46:12

标签: java 3d regression geometry-surface best-fit-curve

嗨,我有一团XYZ数据点。我想估计一个最适合这些点的曲面,以便稍后我可以输入一个XY对并返回该XY对位于曲面上的Z值。

是否有现有的Java库可以为我估算表面?

如果没有,任何人都可以推荐我阅读哪些内容来描述计算方法吗?

如果可能的话,我希望能够对点进行加权(某些点不太可靠,因此对成品表面的影响应该更小)。

1 个答案:

答案 0 :(得分:2)

这种问题最好用linear least squares解决。但是我不会尝试阅读维基百科文章,它似乎是为数学家写的。

我们的想法是将问题转变为线性优化问题。在你的情况下,我试图拟合二维多项式。这是一个形式的等式:

z(x, y) = A + Bx + Cy + Dx^2 + Exy + Ey^2 + Fx^3 + Gx^2y + Hxy^2 + Iy^3 + ...

你明白了。对于给定的数据集,任务被简化为找到最适合数据点的参数A到I.线性最小二乘法很容易解决这类问题。

Have a look at this code for fitting ellipses to 3D data points.通过一些努力,你可以采用上述形式来适应多项式。

祝你好运!