Read the screen value according to the colorbar

5 views (last 30 days)
i have a picture with color bar and now we can see blue square if i want collect (For example the second picture) i only write
img1 = imread('10245.jpg');
img = 1*double(img1)
but data show 100 90 120 and so on.... how i should do

Accepted Answer

Walter Roberson
Walter Roberson on 21 Nov 2023
img1 = imread('10245.jpg');
img = im2double(img1);
However, the result is going to be a 3D array (RGB) with entries in the range 0 to 1. It is not going to be an intensity image with values in the range 0 to 1.
It looks like the colormap might be parula. You could experiment with
img1 = imread('10245.jpg');
intens_img = rescale(rgb2ind(img1, parula), 0, 1, 'InputMin', 0, 'InputMax', 255);

More Answers (1)

Image Analyst
Image Analyst on 21 Nov 2023
If you are really starting with an RGB image of an indexed image that has been pseudocolored with a colormap, then you will need to "undo" the colormap to get back to the original values. See my File Exchange entry where I get the actual temperature image (floating point numbers in degrees Celsius) from a pseducolored RGB image.

Products


Release

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!