用Python拟合一组三维圆弧上的点到一个圆上 (回归)

3
我对Python还比较陌生。我的问题如下:
我有一组在任意平面上形成2D弧线的噪声数据点(x、y、z)。我想要通过这些点拟合出最佳圆,并返回:圆心(x、y、z)、半径和残差。
请问在Python中如何使用scipy解决这个问题?我可以使用迭代法并编写整个代码来解决这个问题。但是,是否有一种使用leastsq在Python中最适合拟合圆形的方法?然后找到圆心和半径?
谢谢, Owais

任意平面是否事先已知,还是您也需要确定它?如果是后者,您需要拟合一些额外的参数来确定平面,即使您只报告中心、半径和残差。 - Jim Lewis
@JimLewis 任意平面事先已知。我已将我的3D数据点投影到这个最佳拟合平面上。然而,现在我想要在这个最佳拟合平面上找到这些投影点的最佳拟合圆。 - user992379
如果您事先知道平面(如对JimLewis的问题的回答),则平面上的3个点唯一地描述了一个圆 - 没有必要使用任何最小二乘算法(请参见CIRCLE THROUGH THREE POINTS以获取几何构造的图示 - 您只需要进行一些差异和平方根运算)。如果每个点都有一个不确定半径,并且想要生成圆心的不确定半径,则更加复杂 - 但仍然不需要任何统计学。 - Peter
2
@Peter,我有大约590个坐标形成一个近似的弧线。我需要一个最适合这些坐标的圆弧,以及它的半径和残差。 - user992379
谢谢 - 现在清楚了,您对于每个数据点都有(x,y,z)坐标。这篇论文描述了一种方法,可以以最小二乘的方式找到适合任意(有限)平面点集的圆,尽管它没有讨论残差,因此可能需要进行一些调整以适应您的应用程序。 - Peter
1个回答

5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接