2012-02-15 34 views
-1

我想用C#代码来确定使用最小二乘法或同等方法最适合数组中点的圆的中心和半径。最适合圆的C#代码

在网上搜索我没有找到。

+0

你有这个公式吗?你有没有尝试写点东西? – Beska 2012-02-15 12:14:17

+0

这是功课吗?如果是这样,请标记为 – 2012-02-15 12:15:01

+0

如何计算中点(所有点的平均值),然后查找中点和其余点之间的最大距离(这会产生半径)?听起来对我来说很容易 – Shai 2012-02-15 12:15:22

回答

3

您可以使用一般的最小化算法,如Levenberg-Marquardt或将其转化为线性问题并解决圆的参数(x,y,radius)。有关更多信息,请参阅此link

我不知道.NET的任何multivaraible Levenberg-Marquardt所以第二种解决方案可能更容易。请注意,您将需要求解Ax = b形式的矩阵方程来查找您的圆参数。 Math.NET库似乎能够do this

+0

谢谢V--那太好了。 – ChrisJJ 2012-02-16 16:22:05

+1

如果有人跑过这个,ALGLIB有一个Levenberg-Marquardt多元求解器。 – user1003131 2016-01-11 19:30:41

1

您可以尝试OpenCV库的FitEllipse功能: Fit ellipse

我认为OpenCV中的C#包装存在。