Radius precision of circles when using "imfindcircles" to find circles?
6 views (last 30 days)
imfindcircle has two methods for finding circles: "Phasecode" and "Twostage". when using the "phase code" method the function, returns radius in double precision (with floating point) however when using "Twostage" method, it gives you the radius without floating point. My question is that the decrease in precision is related to the method itself or it is somehow related to the coding of this function?
Any help would be much appreciated.
Spandan Tiwari on 8 Jul 2014
The 'Phasecode' method inherently supports radius estimation with sub-pixel accuracy, and hence the results have floating-point precision. The 'Twostage' method, on the other hand, uses radial histograms (around the centers) to estimate the radius. Because of that the estimation is inherently limited to a certain number of discrete levels (equal to the number of bins in the histogram), and the estimation accuracy is limited to the size of the bins. The 'Twostage' method uses one-pixel wide bins for the histograms which is why the estimate are integer-valued. Reducing the bin widths may increase the number of possible discrete levels, but does not improve the accuracy (i.e., how faithful is the estimate to the true value) significantly.
Since 'Phasecode' naturally supports sub-pixel accuracy in estimation, it would be the method of choice where precision is essential.