How to detect certain shapes in binary image

I have a binary image containing circular shape; I want to detect the circular shape and eliminate rest of the part in an image. Can someone help me with this. The original image is attached below http://img841.imageshack.us/img841/9128/originalimage.jpg
Expected output image (Edited in MS-Paint)
Thanks for your help in advance!

1 Comment

If you have the Image Processing Toolbox, I would go through the Demos, specifically the one called "Identifying Round Objects". Another excellent resource is ImageAnalyst's BlobsDemo on the File Exchange ( http://www.mathworks.com/matlabcentral/fileexchange/25157-image-segmentation-tutorial-blobsdemo). I would look at both to start with.

Sign in to comment.

 Accepted Answer

If you look at the circularity, that will tell you what's circular and what's not. Look at my BlobsDemo and see how to measure area and perimeter. Then circularity is just perimeter^2 / (4*pi*area). It's 1 for a circle, and gets bigger the more tortuous the edge shape gets.

2 Comments

The link is broken
The link is not broken. I just went there and it works fine for me. Make sure you went to the right person's File Exchange (i.e., mine). Here is the direct link: http://www.mathworks.com/matlabcentral/fileexchange/25157-image-segmentation-tutorial-blobsdemo

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!