Skip to content

Implementation of the manuscript "Direct Least Square Fitting of Ellipses" (Fitzgibbon et al., 1999)

Notifications You must be signed in to change notification settings

mnobrecastro/pcl-ellipse-fitting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Shortest distance from a point to a fitted ellipse

The following code presents the implementation of the "Direct Least Square Fitting of Ellipses" (Fitzgibbon et al., 1999) manuscript and the calculation of the minimal distance from a set of arbitrary points to the fitted ellipse.

This implementation was done in the context of the manuscript "Semi-autonomous Prosthesis Control Using Minimal Depth Information and Vibrotactile Feedback" by Miguel Nobre Castro and Strahinja Dosen, which is available on arXiv:2210.00541.

Requirements

Eigen 3.0.0
PCL 1.11.1*

Steps

  1. Generate a set of elliptically placed and noisy target points.
  2. Perform ellipse fitting [1] to obtain the respective ellipse parametric equation values.
  3. Given an arbitrary point P, which shortest distance is to be evaluated, infer the ellipse quadrant it belongs to.
  4. From that quadrant range, use a golden section line search [2] to find the ellipse point at the minimum distance from P.

Results

Fig. 1: Shortest distances from arbitrary points (white) to an ellipse (yellow) fitted from 6 points (purple).

References

[1] Fitzgibbon A, Pilu M and Fisher RB (1999). Direct least square fitting of ellipses. IEEE Transactions on pattern analysis and machine intelligence, 21(5): 476-480.
[2] Arora J (2012). Introduction to optimum design. Elsevier, 3rd ed, 425-430.


* Please see the following Point Cloud Library links for more details: PointCloudLibrary/pcl#5431 PointCloudLibrary/pcl#5430

About

Implementation of the manuscript "Direct Least Square Fitting of Ellipses" (Fitzgibbon et al., 1999)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published