Ellipse Fit (Direct method)
Note de l’éditeur : This file was selected as MATLAB Central Pick of the Week
This is a fast and non-iterative ellipse fit. Usage:
A = EllipseDirectFit(XY)
Input: XY(n,2) is the array of coordinates of n points
x(i)=XY(i,1), y(i)=XY(i,2)
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:
http://mathworld.wolfram.com/Ellipse.html
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.
Citation pour cette source
Nikolai Chernov (2024). Ellipse Fit (Direct method) (https://www.mathworks.com/matlabcentral/fileexchange/22684-ellipse-fit-direct-method), MATLAB Central File Exchange. Récupéré le .
Compatibilité avec les versions de MATLAB
Plateformes compatibles
Windows macOS LinuxCatégories
Tags
Remerciements
Inspiré par : Ellipse Fit
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Découvrir Live Editor
Créez des scripts avec du code, des résultats et du texte formaté dans un même document exécutable.
Version | Publié le | Notes de version | |
---|---|---|---|
1.1.0.0 | Added the description of input and output. |
||
1.0.0.0 |