Very difficult colonies segmentation. Need help



Hi guys. I´ve been trying to segment this images for weeks now. However, I´m not being able to get a general pipeline for all of them. The problem is that they have very different signals being some of them very close to background levels. Can anyone, please, take a look to the attached pipeline (v.17, already!) and see if there is any tip that could help me?
I´ve tried already several illumination correction methods and different segmentation protocols.
Many thanks.
Attached 5 imagens. I can provide many more, I just can’t upload them via the forum.
RPColonyScreenV17.cppipe (23.2 KB)


I’d like to take a look at your pipeline, but I am having trouble reading your images. Would you be able to attach them again inside a zip file?


Hi Kyle,
Thanks a lot for taking the time to take a look to my images. I´m attaching a ZIP file with a complete 96-well plate dataset. Each well was acquired with a 2x objective, therefore you have one image per well.
Looking forward to your comments and suggestions.
Best regards,

In case the dataset didn’t upload via the forum, please click on the following google drive link that will allow the download of the zip file. Thanks!



Please try out this revised pipeline. Here are some observations:

  1. A single image captures an entire well.
    1. There is a distinct division between the boundary of the well and the background surrounding it. This can complicate thresholding, because this large intensity variation will profoundly influence the choice of the threshold. Therefore we will mask the image, so that only the pixels within the well are considered.
  2. Illumination correction is very influential. I went back to square one and can confirm that without illumination correction, segmentation will be very biased towards the center of the well.
    1. I implemented a background subtraction approach that uses several morphological operations. At first glance this will look somewhat convoluted, because it is implemented with a dozen modules or so. However, the logic is as follows:
      • Ignore 5 pixels around the perimeter where some bright artifacts appear.
      • Shrink the images to smooth and estimate the illumination using an open operation. The size of the structuring element should be larger than the average colony.
      • Subtract the illumination estimate from the raw image.
      • Use a median filter to remove salt-and-pepper noise from the background.
      • Use a close operation to reinforce bright areas in the colonies.
      • Along the way apply a mask to ignore the pixels around the well.
  3. Identify the colonies.
    1. The variation in size and shape of the colonies challenges the segmentation. I chose parameters within IdentifyPrimaryObjects that is biased against over-segmenting smaller colonies, but will break apart large or connected colonies into multiple parts.
    2. The dividing lines between the colonies are based on differences of intensity, but they might not appear intuitive. Before trying to improve these results I would encourage you to process and profile these colony objects, because I think they will still capture colony variation even if they don’t resemble what an expert might hand annotate.


RPColonyScreenV17.cppipe (32.4 KB)


Hi Kyle,
Thanks a lot for the revised protocol. I´ve tried and indeed is performing much much better. I have done some small alterations in order to decrease the over segmentation of the bigger colonies, by playing with the methods of declumping. Also I did some filtering.
This was of a great help! Can you please provide me your name and affiliation so we can proper acknowledge you when it comes to publication? If you prefer to contact me by e-mail here is my professional e-mail address:
Best regards,


Hi @AndreMaia,

I’m glad you’ve found the revised pipeline useful. Please give credit to the CellProfiler forum or the Broad Institute Imaging Platform.



We will.

Once again thanks for the great help.