# Segmentation of microscopic images

This is a classical image segmentation problem: I need to make a visual measurement of particles. I've been using watershed, kmeans and mean shift but it doesn't work well on this image. Could you please recommend me some other methods/open source code?

P/S: Any manual/semi automatic segmentation is also ok with me. I just need the correct segmentation in a reasonable not time consuming way.

• Could you manually segment a few particles to give us an idea of what you require? P.S. next time upload a smaller image to reduce page load time, I have adjusted this one for you :) – geometrikal May 2 '13 at 7:19
• I don't even know how to count these particles with my eyes and brain. Which things are particles and which are just lumps on particles? – endolith May 3 '13 at 13:38
• Maybe you want to try some form of trainable segmentation... – thang Mar 9 '15 at 23:53

## 1 Answer

Since it is very hard to guess what result you need, proposing any automatic segmentation method is very hard.

Let me instead propose two different semi-automatic segmentation with markers.

1. Segmentation using Minimum Spanning Forests with markers

This method is based on a version of watershed [Cousty et. al.: Watershed Cuts: Minimum Spanning Forests and the Drop of Water Principle, 2009].

Basically, you calculate a version of watershed (there are many versions), called watershed cuts, which gives you a (pretty severe) over-segmentation.

After that, you mark your one object (or all of your objects, 1 marker per object + 1 for the background if there is any) you want to find, and it calculates the most likely segmentation based on pre-calculated watershed.

I don't want to go into details, since there is pseudo-code and example images provided (one is even a cell image) in the article, but if you want me please leave a comment and I can add some more information.

2. Segmentation using $\alpha$-trees (or $\alpha$-connected components) with markers

Here, the "starting over-segmentation" is actually simply the segmentation to flat-zones (equal-intensity areas in the image). I am going to explain a little bit of theory here.

An $\alpha$-connected component of a pixel $p$, or $\alpha$-$CC(p)$ is obtained as follows:

• first you choose a connectivity (4- or 8-conn.; 4-conn simply means the neighbors of a pixel are up, down, left, and right)
• if the intensity difference between two neighboring pixels is $\leq \alpha$, those pixels are connected
• $\alpha$-$CC(p)$ contains all the pixels connected to pixel $p$ as well as all the pixels that can be reached from pixel $p$ through a connected path

Now, for various reasons (I can expand the answer again if somebody asks), if you follow the $\alpha$-$CC$ around one pixel, its area usually grows slowly as you increase the $\alpha$, then at some point you have a sudden and rapid increase in the area, and then it continues to grow slowly. Usually, if you look at the $\alpha$-$CC$ just in the moment before the rapid size increase, it will give you your object.

Again, you can use markers to mark which $\alpha$-$CC$'s you want to "follow". The advantage here is that you can calculate the $\alpha$-hierarchy once and then do all the calculations on the same hierarchy.

I know it sounds a bit confusing with all the new terms unless you know something about $\alpha$-trees, but here's some references to help: