Canny thresholding?


Hi guys,

We’re extremely happy with the CellProfiler program and are using it for doing high throughput image analysis in our lab.

But just a small question: The CellProfiler user manual says there are two ways of doing automated thresholding, Otsu and MoG. We are using the Otsu Global approach and this works great for us. Somebody told me however that the Canny algorithm works better, is this true? And if so, why is it not implemented in the CellProfiler?

Thanks a lot for your help,
Berend Snijder


Glad to hear you are making full use of CellProfiler by doing high-throughput work with it! Thanks for the compliment!

I am familiar with Canny edge detectors but not with Canny thresholding. Do you have a reference for the algorithm, or any references showing that it is better and under what circumstances?

We have a whole list of alternate thresholding methods and references for them, but because the currently implemented methods seem to work well empirically, it has not been high on our list to add all these new methods. We are happy to incorporate donated code, if you’d like to work on this area!

We plan to release a new version of CellProfiler later this week with two other thresholding methods we’ve been playing with lately: RidlerCalvard and Background, which I think are new relative to the CellProfiler version online now. Perhaps those will be useful to you.



Ah, my bad… I have mistaken Canny edge detection for Canny thresholding, the latter of which does not exist.

We are also perfectly happy with the current thresholding and object detection, but interested to see what the new version will bring!

Thanks for your help,


OK! Speaking of Canny edge detection, there is a new module in the upcoming release of CellProfiler that is called FindEdges. It simply gives access to the edge-detection algorithms built into Matlab (including Canny edge detection), plus one we adapted from the literature that has been much more useful for some of our projects.