Identify Primary Objects 'Automatic' bug


I am letting you know about an issue I have spotted with CellProfiler 2.0.

I had a couple of pipelines which appeared completely identical but were giving me different segmentation output with IdentifyPrimaryObjects using the new ‘Automatic’ option for thresholding.

It took a while to figure out where the difference lay - on one of the pipelines, when experimenting, I had at some point changed the threshold method from ‘Automatic’ to ‘Global - Otsu’ and I had changed the Threshold Correction Factor from 1.0 to 2.0, before changing the settings back to ‘Automatic’.

This setting - the changed TCF in the ‘Global - Otsu’ - was still affecting the output even when I had ‘Automatic’ selected instead of ‘Global - Otsu’, so that two pipelines that appeared to have completely identical settings were giving me two different segmentation outputs due to this ‘cryptic’ setting.

I am guessing this is because the ‘Automatic’ option, inserted to maker the program more user friendly, is in fact ‘Global - Otsu’. Nonetheless this led to a lot of head-scratching for 45 minutes until I spotted the hidden difference, changed the TCF back to 1 and then had identical output again.

I have not attached images/pipeline as this issue should be very easy to verify.

Kind regards,


Eek - that appears to be a bug in the Automatic method, and indeed, an insidious one! The Automatic method should not depend upon a previously defined Threshold Correction Factor, but I confirmed that it does. Thanks for reporting. I will file a Github issue on this.


Github Issue here.

This bug has just now been fixed. Feel free to test it with a trunk build (though please wait for an hour or two to ensure that our build server to build a new version).

Thanks again for reporting!

This issue has been addressed with the 2.1.1 release.