What does the sensitivity parameter do in imfindcircles?

One of the parameter name-value pairs for the IMFINDCIRCLES function is 'Sensitivity'. I want to know what it does. I understand that increasing the sensitivity results in more (potentially false) detections, but I am looking for more details than that.
After looking through the code, it appears that sensitivity is used in two ways:
  1. (line 180) As an input to the CHCENTERS function, which I think has to do with peak-finding in the accumulator array.
  2. (line 187) As a threshold (1-sensitivity) on the scoring metric of detected circles.
I understand the second one, but I don't know what is happening in the first one and I am hoping someone in this community does.

2 Comments

Still curious about this one...any thoughts, Mathworkers?
I am also interested in the functional form of 'sensitivity'. It might have something to do with the magnitude plot I guess.

Sign in to comment.

Answers (2)

Circles in the image might be weak, bright and few circles may not be clear. To detect such circles you need to play around with sensitivity parameter.

3 Comments

Thanks for the response! I understand the concept of sensitivity, but I am looking for a little more detail here. I am asking specifically what this parameter does in this function.
It might get multiplied with the color information to detect the circles
Yes, that could be. Although that would feel redundant to me considering it is already used as a threshold after the CHCENTERS function.

Sign in to comment.

Jay
Jay on 22 Mar 2017
Edited: Jay on 22 Mar 2017
Blog states that:
"In simple terms it means that the detector's confidence in a certain (circle) detection has to be greater than a certain level before it is considered a valid detection. imfindcircles has a parameter 'Sensitivity' which can be used to control this internal threshold, and consequently, the sensitivity of the algorithm. A higher 'Sensitivity' value sets the detection threshold lower and leads to detecting more circles. This is similar to the sensitivity control on the motion detectors used in home security systems."
To my best guess, it is the threshold of magnitude plot.
For example, let's say you are using the phase coding method. In that method you will come up with the magnitude image and phase image. Magnitude image is similar to the accumulator array.
If its sensitivity is 0.95, it should cancel lower (100-97)% values in magnitude image. Then regional maxima are obtained to locate the centers.
This is my guess. I might be wrong.

Asked:

on 17 Sep 2015

Edited:

Jay
on 22 Mar 2017

Community Treasure Hunt

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

Start Hunting!