MATLAB: Finding circles and tracking

detecting circles find circlesImage Processing Toolbox

hello I am new to MATLAB and I faced this problem as a university project I have to find circles the original image had really poor lighting I got this result after pre processing. now I have problem detecting circles and tracking them.its a stack (.tif) 200 images and particles have a different location in each image. is there any code out there or any algorithm can help me in this project?

Best Answer

[Laughing and sighing] OK, who told you to do an edge detection to find the circle? Some other novice I suppose. I don't know why but for some reason people who don't know much about image processing seem to think "Step 1" of every image analysis algorithm starts with edge detection. It's just not true. In fact, in most of those cases, a simple thresholding would be preferable, as it is in your situation. So simply threshold, then call regionprops. Something like
binaryImage = grayImage < someThreshold; % someThreshold is something like 30 or 60 or whatever works.
binaryImage = bwareafilt(binaryImage, 1); % Extract largest blob only.
labeledImage = bwlabel(binaryImage);
props = regionprops(labeledImage, 'Centroid');
xCentroid = props.Centroid(1);
yCentroid = props.Centroid(2);
See my Image Processing Tutorial http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862&sort=downloads_desc for a full demo using the "coins" demo image that ships with MATLAB.