2012-02-15 64 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#包裝存在。