Hi - thanks in advance for reading/having a look at my problem… any small tips are greatly appreciated!
I have images of water droplets (micrometre size) on a soft substrate that I am trying to create a binary image of and segment individual droplets to attain the size, distribution and are coverage w.r.t. time. What I have found is that at early times when the droplets are spread out and non-touching I can readily attain this data, however when the droplets are polydisperse in size or tightly packed I can’t find a workflow that works.
Due to large droplets having a centre the same colour as the background, or when the particles are touching the dark perimeter isn’t homogenous meaning a threshold doesn’t attain the full circular shape.
Here’s an example of about the limit of polydispersity that I can semi-successfully analyse.
I found the best method often was to enhance the contrast and split into an RGB stack where the green provided the best contrast, and negated the background colour:
run(“Enhance Contrast…”, “saturated=50 equalize”);
run(“Stack to Images”);
Then using binary operations to fill holes/watershed etc.
run(“Convert to Mask”);
run(“Analyze Particles…”, " circularity=0.50-1.00 show=Masks display clear summarize add");
As well as trying to split the colours, I have also tried different techniques:
- Find Maxima and output segmented particles: worked for some cases but didn’t attain accurate shape profiles.
- Hough Transforms: this didn’t work when the perimeters weren’t complete, creating multiple odd ellipses on singular droplets.
- EllipseSplit: again worked well-ish on full circles but struggled with tight packing.
- Analyse particles, mask output: ran this for thresholded particles to attain the inner pore shape on large droplets, which I then dilated. On the original threshold then inverted the LUT and analysed to get the small particles that appear as full dots (not big enough to have the inner transparent pore). I then added the masks together to get a composite representation of all the particles - this was probably the most successful method on awkward polydisperse cases. See the photo below where different parameters (circ/size) were used on the images to attain the different masks.
I have been working on this for so long and although I acknowledge I will need different workflows at different points in time of the images, I still struggle getting accurate data from some examples.
Please see below some raw images that I am not having any luck with:
I have had a play attaining new images but I get the same fundamental problems when I come to analyse. Ultimately as I have images every second I need a decent workflow with I can apply in batch.
Thank you for your time !