Finding Circles in an Image. Hough Transform, Tao's CircularHough_Grd algorithm, Matlab's infindcircles

1 view (last 30 days)
Hi
I am trying to find the centre of a ball in an experiment. The image of the ball is well defined, and is easily appreciated by the human eye. I have tried all methods listed above, and even a few more, but the result of finding circles is always nil or some place where the circle isn't present. I am new to Image porcessing, so I don't know what I am doing wrong.
I have tried: 1) edge function 2) Histogram intensity above specific value and many other to process the image before subjecting it to centre finding.
Help!!
The link to the image(after applying adapthisteq to a single color plane): http://postimage.org/image/sahokwd75/
Link to image after applying Tao's algorithm, and plotting the circles http://postimage.org/image/dlktqp3tp/

Answers (4)

Harshit
Harshit on 8 Nov 2012
Hi Rohan, The intensity of the ball must be near to zero. So Histogram intensity below specific value needed to be taken. Black means zero intensity and white is 255.

Rohan Budhiraja
Rohan Budhiraja on 8 Nov 2012
I tried your suggestion. It doesn't help. The algo still picks random circles instead of the desired one

Image Analyst
Image Analyst on 8 Nov 2012
Your image is way too cluttered, especially for a beginner. Try a more uniform background behind the ball.

Ashish Uthama
Ashish Uthama on 8 Nov 2012
I was able to get the sphere and some false positives with:
[c, r] = imfindcircles(I, [18 22], 'ObjectPolarity','dark','Sensitivity', .98);
imshow(I,[]); viscircles(c,r);
See if you can make sense of the parameters from the documentation.

Community Treasure Hunt

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

Start Hunting!