I have a set of Brain images (DAB imunohistochemistry for nuclei staining) at “10X magnification”. they vary a lot in their pixel intensity distribution. I’m trying to come up with a pipeline that can be adaptative to this variation and still have the same standard for nuclei counting. But not totally successful.
My pipeline is as follows (and shared):
- CorrectIllumminationCalculate (regular, re-scaling and Gaussian smoothing) - the Gaussian improved this a lot, but still not enough
- Morph (inverse the orginal image)
- CorrectIllumminationApply (divide, apply the correction function in the inverse image)
- Enhance&Suppress Features (Enhance speckles)
However, while for some images I have a result pretty near the ideal, for others there are too many false positive. If I try to make the threshold more stringent for the latter one, the former will not count too many true positives.
I filtered out some false positives based on shape,size with MeasureObjectSizeShape and FilterObjects. But still not enough.
I was trying to filter using measureObjectIntensity, or measureObjectRadialDistribution, but any parameter I’d put in both that would serve for the image that needs filtering would make the “close-to-good” images filter out a lot of true positives again. I am currently not able to find a module that would adapt the filter to the image pixel intensity distribution (which I think would get me closer to ideal) or find a module that would be conditional enough to apply different thresholds to images according to their pixel intensity distribution.
Also, I tried resolve this in the pre-processing, correcting illumination or anything, but none would equalize their distribution and allow for one single threshold value for all. The Enhance&Suppress Features does that a lot, but the images (as you can see below), have a difference in background that just make their pixel distribution a lot different.
Is there a way to account for that kind of difference in one single pipeline? Either in pre-processing the images or in filtering out objects?
I appreciate any help,
cell_proj.cpproj (563 KB)