CircleFit Documentation
This package includes algorithms used for fitting circles.
algorithm | 2D | 3D | source |
---|---|---|---|
kasa | yes | no | A circle fitting procedure and its error analysis |
graf | yes | no | Least Squares Fitting of Circles |
taubin | yes | no | Least Squares Fitting of Circles |
pratt,pratt_newton | yes | no | Circular and Linear Regression, C++ code, Least Squares Fitting of Circles |
Example:
# import library
using CircleFit
using StatsBase
# generate test data
r = 5
x0 = 2
y0 = 4.5
x = r.*[-1.0,0,0,1] .+ x0
y = r.*[0.0,1,-1,0] .+ y0
# fit
result = fit(Circle,x,y)
# fitted coefficients
coef(result)
# (2.0, 4.499999999999999, 5.0)
# names of the coefficients
coefnames(result)
# ("center position x1", "center position x2", "radius")
# calculate the residuals square sum
rss(result)
# 1.5777218104420236e-30
Gradient weighted algebraic fit for a circle using LsqFit.levenberg_marquardt
: CircleFit.GRAF(x,y,p0)
or fit(Circle,x,y,alg=:graf)
Non optimized implementations:
- Method by Taubin
CircleFit.taubin(x,y)
orfit(Circle,x,y,alg=:taubin)