UnmixColors module setting

Hi all,

We’re new to CellProfiler, and we’re trying to measure lesion area in an infected leaf. However, we are running into problems trying to set up the pipeline. We have the software set to detect the area of the leaf on a white background, and compare it to the sum of lesion areas to find a percentage of the infection on the leaf. The first part of differentiating the leaf from the white background works fine, but we’re having trouble setting up the “UnmixColors” to filter out the healthy leaf part to measure only the lesion areas. We’re hoping to use custom stains to differentiate the infections, and we’ve tried using an image of a healthy leaf as the absorbance, but it only worked on a few images. Then we tried setting two stains in the module, giving it a ‘range’, but it is also filtering out more than what’s intended. Also, we can’t use ‘ClassifyPixels’ as the tutorials are, due to our computer being 32-bit.

We would greatly appreciate any advice and hint you may be able to give us to set this system up.
Thank you!


Thanks for trying CellProfiler. Would you mind attaching your two raw images, as well as your pipeline? The raw images are much easier for us to load into CellProfiler for us to test. If the forum complains about filetypes, you can zip the files first.

Also, what do you consider lesions? Any browning of the leaf, including the lower left example? Or only the upper right example?


I do think that Ilastik would do a good job - it might be worth finding a 64-bit PC lying around so you could use Ilastik. You can even get a remote PC using something like Microsoft Azure and connect to it using remote desktop for a couple bucks a day.

Having said that, I’m thinking that it might be interesting to write a module that would use a very simple model to classify colors - pick some representative colors from among the examples and classify a pixel based on which color it’s nearest to. Could you post a few of the raw images or send them to me (leek@broadinstitute.org) along with a few that have some markup (e.g. with Microsoft Paint or Photoshop) that outlines the two classes?

I experimented with the images a bit. The lesions have less chlorophyll and more absorbance by what I’m guessing is the cellulose, so you have to do some sort of subtraction or division of the chlorophyll signal by the cellulose (?) signal. Not so easy.

I did a quick training (this is the test image, not the training image) using an SVM classifier with a RBF kernel to classify the colors in the image as lesion or plant and got good results:

In short - I’m sure I could write a short module to solve the problem, but perhaps Ilastik (fiji.sc/Fiji) are better choices and have machine learning methods built in.

CellProfiler does come with Ilastik built-in in the Linux and Windows-x64 versions.

We consider the lesion areas to be all non-healthy parts of the leaf.

And here’s my version of the pipeline:
testing final-A.cppipe (9.88 KB)