Hi there,
I have a 32bit tif image https://we.tl/t-H0WliT3O50 . This image is 'single' but Matlab assumes by default 32bit means int32 and when the image is open with imread() the image is binary. I would to read the image using grey scale. How can I do this? I´ve tried itconvert in double but the image is open as binary image.
Any help would be very much appreciated , thanks

8 Comments

Ameer Hamza
Ameer Hamza on 14 Jun 2020
Edited: Ameer Hamza on 14 Jun 2020
In R2020a, MATLAB reads the image as uint32, and imshow shows it correctly as a grayscale image
img = imread('lh.average.CURVATURE.tif');
imshow(img);
Can you show the code to read the image? Also, can you show the output of
class(img)
where img is variable in which image is loaded.
Pamela Garcia
Pamela Garcia on 14 Jun 2020
Edited: Pamela Garcia on 14 Jun 2020
Thanks for answer quickly.
I would to see the image like this https://we.tl/t-VCQDOLoBcr but imread() open as binary
The result of class(img)
ans =
'int32'
Which MATLAB release are you using?
Matlab R2020a
I am also using R2020a, and it reads the tiff image as uint32. Also, does the tiff and png files you shared corresponds to the same image?
Yes, I just updated the images and the initial file.
This tiff file seems to have very unusual encoding. How did you generate the png file from the tiff file?
It is the result of windows photo visualizer

Sign in to comment.

 Accepted Answer

If you look at imfinfo() of the file, you can see that the headers say it is a collection of nine images with 32 bit signed integer. If it is intended to be single instead, then the metadata is wrong.
for IDX = 1 : 9
imgint32 = imread('lh.average.CURVATURE.tif','index',IDX);
imgsingle{IDX} = reshape(typecast(imgint32(:), 'single'), size(img32));
end

More Answers (0)

Categories

Find more on Convert Image Type in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!