Class CircleFitKasaB
- All Implemented Interfaces:
CircleFitAlgebraic
CircleFitKasaA
for the original version.
Compared to the original Kåsa algorithm, this variant also solves a 3x3 linear system but uses a slightly different setup of the scatter matrix (using only powers of 2 instead of 3). A numerical solver is used for this purpose. The algorithm is fast but shares the same numerical instabilities and bias when sample points are taken from a small circle segment. It fails when matrix M becomes singular. Fits to exactly 3 (non-collinear) points are handled properly. Data centering is used to improve numerical stability (alternatively, a reference point can be specified).
[1] I. Kåsa. "A circle fitting procedure and its error analysis",
IEEE Transactions on Instrumentation and Measurement 25(1),
8–14 (1976).
[2] N. Chernov. "Circular and Linear Regression: Fitting Circles and Lines by Least Squares". Monographs on
Statistics and Applied Probability. Taylor & Francis (2011).
[3] W. Burger, M.J. Burge, Digital Image Processing – An Algorithmic Introduction, 3rd ed, Springer
(2022).
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface imagingbook.common.geometry.fitting.circle.algebraic.CircleFitAlgebraic
CircleFitAlgebraic.FitType
-
Constructor Summary
ConstructorsConstructorDescriptionCircleFitKasaB
(Pnt2d[] points) Constructor.CircleFitKasaB
(Pnt2d[] points, Pnt2d xref) Constructor. -
Method Summary
Modifier and TypeMethodDescriptiondouble[]
Returns parameters (A, B, C, D) of theAlgebraicCircle
ornull
if the fit was unsuccessful.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface imagingbook.common.geometry.fitting.circle.algebraic.CircleFitAlgebraic
getAlgebraicCircle, getGeometricCircle, normalizeP
-
Constructor Details
-
CircleFitKasaB
Constructor. The centroid of the sample points is used as the reference point.- Parameters:
points
- sample points
-
CircleFitKasaB
Constructor. The centroid of the sample points is used as the reference point for data centering ifnull
is passed forxref
.- Parameters:
points
- sample pointsxref
- reference point ornull
-
-
Method Details
-
getParameters
Description copied from interface:CircleFitAlgebraic
Returns parameters (A, B, C, D) of theAlgebraicCircle
ornull
if the fit was unsuccessful. Parameters are not normalized.- Specified by:
getParameters
in interfaceCircleFitAlgebraic
- Returns:
- the algebraic circle parameters or
null
-