4.5

4.5 | 4 ratings Rate this file 60 Downloads (last 30 days) File Size: 2.24 KB File ID: #22678
image thumbnail

Circle Fit (Taubin method)

by Nikolai Chernov

 

13 Jan 2009

Fits a circle to a set of data points on a plane; returns the circle center (a,b) and radius R.

Editor's Notes:

This file was selected as MATLAB Central Pick of the Week

| Watch this File

File Information
Description

This is a robust and accurate circle fit. It works well even if data
points are observed only within a small arc. This circle fit was
proposed by G. Taubin in article "Estimation Of Planar Curves, Surfaces And Nonplanar Space Curves Defined By Implicit Equations, With Applications To Edge And Range Image Segmentation", IEEE Trans. PAMI, Vol. 13, pages 1115-1138, (1991). It is more stable than the simple Circle Fit by Kasa (files
#5557 and #22642) and slightly faster than Circle Fit by Pratt (file #22643).

Acknowledgements

The author wishes to acknowledge the following in the creation of this submission:
Circle fit

MATLAB release MATLAB 6.0 (R12)
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (4)
23 Dec 2009 Scott Graybill

Nice function. Very clean and easily implemented in any language. Was wondering if it could be extended to a sphere. I can't follow how you wrote the function from the article (G. Taubin, 1991)

02 Jul 2010 Manuel Lopes

Works nicely, can be easily extended to 3D data.

%project 3D data to a plane
[U,S,V]=svd(XYr);
XYp = U'*XYr;

Pare = CircleFitByTaubin(XYp(1:2,:)')

%estimated center
UU = U * [Pare(1:2)';0];
%estimated radius
RR = Pare(end);

09 Aug 2011 jinrong  
01 Dec 2011 David  
Please login to add a comment or rating.
Tag Activity for this File
Tag Applied By Date/Time
image processing Nikolai Chernov 14 Jan 2009 14:57:36
statistics Nikolai Chernov 14 Jan 2009 14:57:36
optimization Nikolai Chernov 14 Jan 2009 14:57:36
fitting curves Nikolai Chernov 14 Jan 2009 14:57:36
least squares Nikolai Chernov 14 Jan 2009 14:57:36
image processing Cristina McIntire 15 Jan 2009 13:00:11
optimization Cristina McIntire 15 Jan 2009 13:00:11
fitting curves Cristina McIntire 15 Jan 2009 13:00:11
probability Cristina McIntire 15 Jan 2009 13:00:11
statistics Cristina McIntire 15 Jan 2009 13:00:11
fitting curves frank mo 31 Mar 2009 19:24:44
potw Shari Freedman 20 Apr 2009 12:43:06
fitting curves Raul 16 Feb 2010 12:05:37
fitting curves Grzegorz Knor 26 Aug 2010 14:00:18
pick of the week Jiro Doke 11 Feb 2011 20:12:28

Contact us at files@mathworks.com