Based on the research paper "A Simple approach for the Estimation of Circular Arc Center and Its radius", Thomas and Chan, Computer vision, graphics and image processing 45, 362-370 (1989)
Use of geometric fit makes this more accurate than least square approximations.
Sumith YD (2020). Fast Circle fitting using Landau method (https://www.mathworks.com/matlabcentral/fileexchange/44219-fast-circle-fitting-using-landau-method), MATLAB Central File Exchange. Retrieved .
Is it possible to avoid the for loop with a build in cumsum ?
very good code, very useful.
Easy to use...Do you have a c++ version of this?
%here is a demo on how to use above function with random data. Make sure you have Landau_new.m file on the same folder as this file.
R = 6.57; xc = 12; yc = -8;
thetas = 0:pi/180:2*pi;
x = xc + R*cos(thetas);
y = yc + R*sin(thetas);
mult = 0.2;
x = x+mult*randn(size(x));
y = y+mult*randn(size(y));
[xcnew,ycnew,Rnew] = Landau_new(x,y);
xcircle = R*cos(theta')+xc;
ycircle = R*sin(theta')+yc;
Updated with comments and usage instructions
Inspired by: Circle fit