I am trying to segment an image using the Watershed class in net.imglib2.algorithm.labeling, using as intensity image a Sobel-transformed version of the original image

I am noticing that in some cases close objects get merged together even though they had two different seeds to begin with and I am unclear as to why this is happening. I thought the point of watershed was expanding the seed regions until they touch, and then separating them so that they don’t mix. Therefore I don’t understand how one region could ever possibly “swallow” an adjacent one.

I have also noticed that the issue gets worse if I use a “larger” structuring element (i.e. 8-connected instead of 4-connected) as input to the watershed.

Any idea about what may be going on?

Any idea?

Please help.

I didn't find the right solution from the Internet.



Explainer Video studio