How to measure redness intensity with a common color threshold parameter set

I have the following two images

Fig1.png

Fig2.png

What I want to measure is the redness intensity for each image.
By eyes it’s clear that Fig1.png has higher redness intensity than Fig2.png

I tried with the following color threshold for both images:

However the intensity I got is not as expected:

The above are obtained with (Analyze > Analyze Particles) right after color thresholding.

I expect that the Total Area to be the same and Mean (gray value)
to e larger in Fig1.png.

How can I achieve what I expected?

In practice I have hundreds of medical images with degree of redness.
More red means more sick.
I need to quantify that with a standard parameter and process it with a single macro script.

P.D.

Hi there,
I think the problem for the two sample images is that the brightness threshold are set the wrong way - rather than thresholding from 0 to 146 as shown in your screenshot, using 146 to 255 or even 0 to 255 gives similar area results for the two sample images. Make sure that you click ‘Select’ before you measure as otherwise the whole image will be measured.
More importantly, your expectation that the brightness/redness in figure 1 should be larger than in figure 2 is incorrect for an RGB image. You need to consider that white in an RGB image is the result of saturation in the red, green and blue channel. So, pure red pixels are saturated in the red channel, and 0 (black) in the green and blue channels. Paler red pixels have LARGER green and blue components. So, when you measure the overall pixel intensity (which is an average of the three channels), they have actually larger pixel values. You can see the pixel values in the three different channels in the ImageJ status bar when you move the cursor over the image. For figure 1, these values are 228,000,040 (red, green, blue) for pixels inside the circle in figure 1 and 239,180,182 for pixels inside the circle in figure 2. You can also see the channel histograms in the Threshold Color plugin by changing the color space to RGB.
You can convert the images to an RGB stack (Image->Type->RGB stack) or split them into individual channels (Image->Color->Split Channels). This separates the red, green and blue component. However, the red channels will still have similar intensities and the differences between the two images are in the green and blue channel contribution.
How to best solve this problem for your images, depends a bit on your actual images and the staining method you used. Are your original images actually RGB colour images or where they collected with a b/w camera and different filter sets to collect greyscale images for each colour channel?
Hope this helps,
Volko

Hi Volko,
Thank you for your answer.
I’ve described the actual problem and images in this post: How to quantify the area and intensity of the redness in the non-red desaturated images

So the actual image is color shot using usual camera. And I removed the non-red colors
using Photoshop.

However the answer there is not satisfactory, so I simplified the problem.
Thanks and hope to hear from you again.

Let me provide here the actual figs again in TIFs (so it contains 3 layers of RGB).

patient-01-008-minus8wks.feet.tif (4.1 MB) -> before treatment

patient-01-008-75wks.feet.tif (4.5 MB) -> after treatment

I did Image > Color > Split channels on the images. But the resulted Red layer
is completely reds and I’m unable to Color threshold it.

P.D.

Dear @Peverall_Dubois,

I looked at both posts and have a few suggestions and comments.

  1. I do not understand why you need to desaturate the images in Photoshop first. It is not usually very useful to work in Photoshop as you can probably do everything in Fiji.

  2. Your question is actually two questions that need to be tackled separately. First, we figure how to find the area to quantify, and in a second step, we see how we can measure the ‘redness’ of that area.

Let’s ignore the area measurement and focus on the red part. I am under the impression that you had the answer already when you were talking about ‘desaturating’ the images. A good measure of purity of redness is, exactly the ‘saturation’ of the image.


Fig 2 seems to have a red that is about a quarter of the red in Fig 1.

This can be achieved by converting the image to HSB in Fiji (Image > Type > HSB Stack) and measuring the mean of second channel.

Now onto area measurement.
It is not a good strategy to detect and measure something based on the same signal. What if there is no red? How do you define the area then? The idea is to use something independent to find the area to measure, like the outline of the leg. A good trick might be to ensure the pictures are taken in a consistent way so as to stack them together, almost aligned. Then measure the saturation in the image.

To select only the red component, you could use the Hue component in the HSB image to limit the saturation measurement to only the ‘red’ areas.

2 Likes

Hi Oburri,
Thank you so much for your reply. I tried to follow your suggestion. But encounter some issue. Would you mind look at this post?

Thanks and hope to hear from you again.

P.D