Ellipse Fit (Direct method) (Scripts) Publisher's description
from Nikolai Chernov
This is a fast and non-iterative ellipse fit
This is a fast and non-iterative ellipse fit.
A = EllipseDirectFit(XY)
Input: XY(n,2) is the array of coordinates of n points
Output: A = [a b c d e f]' is the vector of coefficients
of the equation of the best fitting ellipse:
ax^2 + bxy + cy^2 + dx + ey + f = 0,
To convert this vector to the geometric parameters (semi-axes, center, etc.) use standard formulas, e.g., (19) - (24) in Wolfram Mathworld:
This ellipse fit was proposed in article
A. W. Fitzgibbon, M. Pilu, R. B. Fisher
"Direct Least Squares Fitting of Ellipses"
IEEE Trans. PAMI, Vol. 21, pages 476-480 (1999)
The authors called it "Direct Ellipse Fit".
My code is based on a numerically stable version
of this fit published by R. Halir and J. Flusser. I only
added data centering to further improve performance.
Note: this fit returns ellipses only! You will get an ellipse
even if points can be better approximated by a hyperbola.
This fit is somewhat biased toward smaller ellipses.
System Requirements:MATLAB 6.0 (R12)
Program Release Status: New Release
Program Install Support: Install and Uninstall