Location of object intensity maxima from MeasureObjectIntensity module is off from real maximum location


I have an image of fluorescing particles. Image is thresholded and objects are identified. Then, location of intensity maxima of each object are requested and saved in the csv file. Pipeline and original image (Aligned0045) are attached.
The exported locations of the maxima of intensity of each object do not correspond to the locations of the maxima on the actual image.
I loaded one image of the particles just prior the identification of objects (Aligned0045Enhanced), as well as object outline image (Aligned0045outlines) into Matlab. On each of those images I plotted a scatter plot of maxima - each red is centered on the supposed maxima location for each object. Matlab figures with maxima locations were saved as Aligned0045Enhanced_MaximaLocationOverlay and Aligned0045Outlines_MaximaLocationOverlay. One can clearly see that those are way off (zoom in to see better). But outlines and enhanced image of particles before object identification seem to be aligned.

I also attached matlab file with all the operation I did, as well as Matlab data file.

Please, help me resolve this issue. It may be a very simple mistake - I am just not able to locate it.

Thank you,
P.S.: I have a more general question as well, but I’d like to ask it later after this detail is sorted out.
See this for pipeline: Process_MeasureMaxIntLocation_Align45_forCellProfiler.cpproj (418.4 KB)

See this for all data:
Aligned0045_processing.zip (1.3 MB)



I don’t have Matlab on my machine so I can’t see your scatter plots and therefore you may have more than 1 problem, but there’s at least 1 I can identify without it:

You’re identifying the objects on a image you’ve downsized by 50%, but measuring the intensity still in the full size image, so it’s not surprising the numbers are off- the objects are on a 1024x1024 coordinate grid and you’re trying to measure the pixels that are on a 2048x2048 grid. You should be able to fix that by either measuring in the downsized image or skipping the resizing altogether.


No. I use images saved from Enhance module and Outlines module to co-locate with maxima. Both of those images were resized!
Here are tif of matlab images and center spot locations. Look at where red circles are - this is where maxima intensity are recorded in the pipeline. You can go to excel file and easily figure out which objects it corresponds to.


If you look at what channel you’re using to do the measurements of the intensity in for your MeasureObjectIntensity module, you’ll see it’s the original one. So the measurement is being done with the objects as the red outlines here, on your original image that for this purpose I’ve colored as green.

I’m not saying your graphing was wrong, I’m saying when the measurements were done they were done on mostly just background pixels as you can see below, which is why the “which point in this object was most intense” is generally coming back as a random point within the object.


The issue resolved. Thank you.
As you said: the outlines of identified objects for determination of maximum intensity (10241024) were overlayed over original image (20482048) and therefore were sampling random area of the original image.