Manual Tresholding values

treshold
identifyprimary

#1

I am trying to identify PLA dots in a noisy image (L20_dots.tif https://drive.google.com/open?id=1MhJauQmmGLNSy2O-jilMBh7tgyV6ajWx).

I can’t come directly to a satisfying result with IdentifyPrimaryObjects.
Here is my pipeline:
tresholding_manually.cpproj (473.3 KB)

So I first Enhance speckles with the EnhanceOrSupressFeatures.

Then I want to threshold the resulting Image before identifying the dots.

This is where I have an issue: I don’t manage to threshold the image like I would do in ImageJ (see picture below).

Even by reading previous posts on tresholding I can’t find the adequate value between 0 and 1 to perform a manual threshold that would match the result of what I could perform similarly to the 98.2% value used with ImageJ. I just get a back image at the end.

Thanks!


#2

Hi,

We’re having a little problem with our forum downloads right now, so I can’t actually download and take a look at your pipeline, but I just want to point something out- that threshold you posted from ImageJ was not based on anything to do with “98%” but with the fact you’ve set as a threshold of an intensity of 2 (out of a maximum of 65535). If you wanted to manually get the same threshold in CP, the equivalent value would be a threshold of 0.00003 (2/65535).

That being said, unless the exact same manual threshold works well on every image we don’t generally advise setting the threshold manually; I’d try the “RobustBackground” method of threshold calculation, since that generally works pretty well for speckly images; just for fun I tried using it on your image and got a calculated threshold of 0.00002, so it came out pretty close to what your manual method does.


#3

Thank your for your help. I indeed was misunderstanding the tresholding process on ImageJ and CellProfiler and you made it clear. Also you’r right that the RobustBackground is performing quite well in that case!