java.lang.Object
imagingbook.common.geometry.fitting.circle.algebraic.CircleFitTaubin
All Implemented Interfaces:
CircleFitAlgebraic

public class CircleFitTaubin extends Object implements CircleFitAlgebraic
This is an implementation of the algebraic circle fitting algorithm by Taubin [1], following the description in [2] (Sec. 5.9-5.10).

The algorithm uses singular-value decomposition (SVD). 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] G. Taubin. "Estimation of planar curves, surfaces, and nonplanar space curves defined by implicit equations with applications to edge and range image segmentation". IEEE Transactions on Pattern Analysis and Machine Intelligence 13(11), 1115–1138 (1991).
[2] N. Chernov. "Circular and Linear Regression: Fitting Circles and Lines by Least Squares". Monographs on Statistics and Applied Probability. Taylor & Francis (2011).

  • Constructor Details

    • CircleFitTaubin

      public CircleFitTaubin(Pnt2d[] points)
      Constructor. The centroid of the sample points is used as the reference point.
      Parameters:
      points - sample points
    • CircleFitTaubin

      public CircleFitTaubin(Pnt2d[] points, Pnt2d xref)
      Constructor. The centroid of the sample points is used as the reference point for data centering if null is passed for xref.
      Parameters:
      points - sample points
      xref - reference point or null
  • Method Details