I am trying to split related objects. Python and the watershed algorithm (scipy implementation) seem to be well suited to solve this problem.
Here is my image and automatically created sowing points of the watershed (local image maxima with threshold and distance):
seeds = myGenSeeds( image_grey )

So far so good; there is a seed for each object.
Things break when I start the watershed, though:
segmented = ndimage.measurements.watershed_ift( 255 - image_grey, seeds)`

Both the upper middle cluster and the central cluster are poorly separated. In the upper cluster, one object is poured around the other two. In the central cluster, although it may be too small to see here, the central seed is flooded with just a few pixels.
I have two questions:
- Is a watershed algorithm a good choice for separating such objects?
- If so, is there some kind of pre-processing that I did to make the image more suitable for segmentation of watersheds?
source share