Segmentation of objects in Fiji, when the signal intensity varies among them



I am quite new to Fiji and have encountered a challenge with segmentation.

I have a set of images of bacteria taken using 2 channels, DAPI (for DNA) and FM-64 (for cellular membrane). I have attached a link to cropped example from the image set.

Analysis goals

My goal is to do the segmentation so that I get a set of individual ROIs (one for each bacterium) based on DNA and another set of individual ROIs based on the membrane. And then I want to measure the parameters (area, circularity etc.) of the objects (bacteria) in the original image, using created ROIs.


I constructed a macro that worked OKish for the DAPI channel but not for the FM4-64 channel. My problem is that I don’t manage to threshold all objects of interest (all bacteria) in one operation. When I try to apply a thresholding algorithm from the available list, some bacteria still remain below the threshold. I assume this is because the FM 4-64 signal is much stronger in some cells then in the others (see picture Example bacteria FM4-64).

I tied to apply Filters (I liked Median the most) and Background Subtraction (radius 10, comparable to the size of my objects) before the thresholding and it helped a bit, but still the pale cells were left as a background.
So what I did was that I ran a macro for a 2-step segmantation, the first step for the “bright” cells and the second for the “pale” cells. I am not sure if this an acceptable way to do it. Because I had to apply one thresholding algorithm at the first step, then after the measurements I just cleared the selected ROIs in the original image (which created some “black holes” in it, see picture Example bacteria FM4-64 CLEAR) . And ran another thresholding algorythm (a different one!) on the remaining objects…
Another thing I tried was to use a Filter called Unsharp Mask or a CLAHE (Enhance Local Contrast) function, and most cells were identified as objects and thresholded. But since some of the cells form chains, those chains appeared as single particles, so I had to apply Watershed which created some artificial “septa” where they shouldn’t be (see picture Example bacteria FM4-64 BINARY).

Maybe you could suggest any ideas for a better thresholding? Or pre-processing before the thresholding? Or other options then Watershed to “divide” the cells?