Radius precision of circles when using "imfindcircles" to find circles?

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.
Roohi

 採用された回答

Spandan Tiwari
Spandan Tiwari 2014 年 7 月 8 日

0 投票

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.

3 件のコメント

Roohi
Roohi 2014 年 7 月 8 日
Thank you so much Dear Spandan Tiwari.
I really appreciate your help.
Since I am not very good at the subject of image processing, I am wondering if you help me with few more questions.
My main concern is the precision of center of circles (I am looking at the displacements). Both "twostage" and "phasecode" seem to give the center locations with floating points. if "twostage" method gives a radius with one pixel accuracy, How come the center has a double precision? Shouldn't they be interrelated (I mean the accuracy of Radius and center of the circle)? My main question is that "Do I get more error if I use "twostage" method for centers as well?"
You help is very much appreciated.
Roohi
Spandan Tiwari
Spandan Tiwari 2014 年 7 月 10 日
if "twostage" method gives a radius with one pixel accuracy, How come the center has a double precision? Shouldn't they be interrelated (I mean the accuracy of Radius and center of the circle)?
Those two computations are largely independent (two disparate steps), hence the difference in precision (in 'twostage').
My main question is that "Do I get more error if I use "twostage" method for centers as well?"
No
Roohi
Roohi 2015 年 2 月 28 日
Thank you again Dear Tiwari for the help. Based on your suggestion I am using "phasecode". The code gives me the radius and center in double precision. Now I am wondering if you know the accuracy (the size of bins) for estimating the radius and center locations? Your help is really appreciated.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeColor and Styling についてさらに検索

質問済み:

2014 年 7 月 3 日

コメント済み:

2015 年 2 月 28 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by