Detcting irregular circles with different sizes

5 views (last 30 days)
Hi friends,
I am going to detect some circles with different size in an image. I already binarized the image and applied the cannyy edge detection. But still have problem in seprating the circles from the other object in the image. I will appreciate if you tell me how I can solve this problem? I attached the picture here.
Thank you,

Answers (1)

David Young
David Young on 19 Feb 2015
You could consider the Hough Transform. The best place to start is imfindcircles. There are also some circle Hough Transform implementations in the file exchange.
By the way, note that Canny edge detection should normally be applied to the grayscale image, not to a binarized image. It sounded like maybe you binarized then applied Canny, which is not usually the best approach.
  6 Comments
Vahid Abolhasannejad
Vahid Abolhasannejad on 21 Feb 2015
Thank you david for your helps, I fortunately found a way through "regionprops" to solve this problem. This method can also give me subpixel accuracy.
Image Analyst
Image Analyst on 21 Feb 2015
Evidently you didn't understand David's answer. And though you can use regionprops to find blobs that are circular, you must have the blobs to begin with - and that is where the substantial work comes in that David and I just don't have time to help you with. Just using some edge detection or threshold will give you some blobs of course, but that doesn't mean those blobs are all the circles in the image and that no circles were missed during that segmentation.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!