How to do Thermal image Normalization with range 0 to 40
Show older comments
Hi all I'm doing research about using thermal image for temperature measurement for medical purposes, I try to repeat methodology of paper "Face and eyes localization algorithm in thermal images for temperature measurement of the inner canthus of the eyes". They used Normalization of thermal image with range 0 to 40, and they got these results.

I tried the code below:
tt = imread('test.jpg');
figure, imshow(tt)
tt = double(tt);
normimg = uint8(zeros(size(tt)));
for idx = 1 : 3
chan = tt(:,:,idx);
minvalue = min(chan(:));
maxvalue = max(chan(:));
normimg(:,:,idx) = uint8((chan-minvalue)*40/(maxvalue-minvalue));
end
figure, imshow(normimg)
and I got different results so what I should do to get same results Thank you in advance

Accepted Answer
More Answers (1)
Vishal Neelagiri
on 16 Jan 2017
0 votes
You might be implementing the algorithm given in the publication incorrectly. The code that you mentioned seems to be correct in normalizing the RGB values of the image from 0 to 40, however there must have been something else that you might be missing from the publication.
This is because 'tt=imread('Test.jpg')' stores the RGB values of the image in the 'tt' matrix. The remainder of your script loops through the entire 'tt' matrix and normalizes the values between 0 and 40. So, the RGB values are between 0 and 40.
If you look at the colors corresponding to the RGB values in this website, http://www.w3schools.com/colors/colors_rgb.asp , you can observe that it is not possible to output the red or orange shades without going beyond RGB value 40. So, the dark image that you are observing seems to be the expected behavior.
Categories
Find more on White in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!