MATLAB: How to find the radius and count of the black circles (blobs) in the image.

digital image processinghole fillingImage Processing ToolboxMATLAB

The tricky part is that imfindcircles gets confused between the inner white circle and the boundary. How do I use edge detect on just the black circle ? I would like to completely transform this image into pure black and white image so that I can use imfindcircles to get the answers. Any advise is appreciated.

Best Answer

Just get rid of them:
% Invert mask so black is white.
mask = ~mask;
% Fill holes
mask = imfill(mask, 'holes');
No need to invert again and turn your object black since MATLAB only considers the white blobs when doing operations.