How do I stop ImageJ measuring channel intensity max at less than 255 (8-bit)

Hi everyone, I’m a total newcomer at using ImageJ and I’m using it to do some basic analysis of some immunofluorescent microscopy pics (8-bit RBG multi channel). In my control images, which have only background levels of the channel I am measuring, the max intensity is appearing as lower than 255. I’m not having this problem with images that have slightly greater signals. The actual mean measurement for my controls would be close to zero, as opposed to what’s highlighted below:
37%20pm
How do I make ImageJ measure these images between 0 and 255?

Thanks for your time!
Adrian

Hi @adriansch,

Why is it that you want to measure with Max at 255? Usually 255 is to be avoided as in 8-bit images, you can’t tell the difference between 255 and 255 if the latter actually would be, say, 400. So 255 means your detector (camera?) is saturated. So my guess is that (large?) parts of your image are overexposed. Can you re-record images, or are they a given?

Especially when you want to calculate (test-control) values, you don’t want to scale your signal, as you seem to request. When your imaging device allows, you should use 16-bit, or at least more than 8-bit, if you want a higher dynamic range. That then allows for direct calculation of the test-control, if the settings (exposure time, intensity of illumination, incubation settings etc.etc.) are kept constant between recordings.

Best way to go is to have calibration objects, where you calibrate your fluorescence against known values. That may be in arbitrary units, or known concentration of the fluorescent dye, or known amounts of the stuff you are labeling. I take for granted that you have a specific channel for each dye.

As an example of how you could (mis)treat your images and do get 255, run this little macro below It shows the results you desire, as well as what now is considered the “truth” (an image with overexposed blue channel, and a sparse histogram).

run("Fluorescent Cells (400K)");
setSlice(3);
run("Measure");
run("Histogram", "slice");
run("Enhance Contrast...", "saturated=0.3 equalize");
run("Measure");
run("Histogram", "slice");```

The unhelpful answer would be to over expose your images, but this is not what you should be doing.

A max of 255 in an 8bit image means that for some pixels the sensor was filled to its capacity and information was lost. This is colloquially referred to as clipping or blowing the highlights.

The max in the results table is the maximum intensity value in the image / roi. You might be thinking of the bit depth of the image, which is maximum possible intensity that can recorded by the sensor or stored in the file format.

There’s some websites that might help, like this one from thermofisher that has this image (which is for a 12-bit image):

While ideally an image wouldn’t have any pixels at the max, sometimes to get all of image recorded you tolerate a small fraction of over exposed pixels.

Working with higher bit depth sensors makes life much easier.

Chris