How to find small circles/ellipses in unclear image

6 views (last 30 days)
Hi,
I am having problems finding roughly circular/elliptical objects - they are pretty much placed following a triangular design in the image. I guess, the images are not very clear, and that makes it harder, but I was once told anything we can see with our eyes, we should be able to extract through image processing.
Please refer to the image below, what you're looking at is basically cells sitting on top of some pillars - and the bright round things are the surface of the pillars. imfindcircles is picking up 3 to 4 pillars in this image. I'm not too sure how to tweak this. Sometimes the pillars appear less circular when a cell is moving especially.
What I need to do is find the exact position of these pillars, and then compare it to a different set of positions, of course eliminating all other circular objects. Is there anyway to do this elegantly?
You can ignore left and right sides of the image, where there are too many cells, and the pillars are not really visible.
Thank you in advance
  1 Comment
Mekan Aydemir
Mekan Aydemir on 6 Jan 2020
Hi.
Did you find a way to solve your problem. Now I am having image like yours.

Sign in to comment.

Answers (2)

Julia Gala
Julia Gala on 27 Dec 2015
Hi! It's probably not very useful anymore, but it might be useful for someone else. The function you are looking for is:
imfindcircles
You probably will need to change the sensitivity until it's able to find the pillars and the cells in your image, and use the option "bright". I've also realised that you do have an inverse background in the sides of your device that will probably give you problems in image analysis as it does have more contrast than the rest of the image. You may have to consider a background correction algorithm (divide by a background image of the device) to eliminate any optical effect, or simply cropping your image to the central part that has a homogeneous background.
Good luck!

Spandan Tiwari
Spandan Tiwari on 5 Jan 2016
Although imfindcircles is definitely worth trying, it may be possible that due to lack of contrast and relatively small size of the circles you don't detect all of them. Its definitely worth a shot. Also remember to tinker with the 'ObjectPolarity" parameter in imfindcircles.
Another technique that may be useful here is anomaly detection. Something like the RX anomaly detector would be ideal although MATLAB doesn't have an built-in function for that.

Community Treasure Hunt

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

Start Hunting!