Read Tif File shows Error "Cannot handle different values per sample for "BitsPerSample"."

5 views (last 30 days)
Jihang Wang
Jihang Wang on 11 Mar 2020
Answered: Rishik Ramena on 29 Dec 2020
I have a tif file that I can view it from Windows Photos App. You can download it from this link.
I tried to load it to Matlab using `imread` function, however it shows an error below.
TIFF library error - 'TIFFReadDirectory: Cannot handle different values per sample for "BitsPerSample".'
I then further looking into the file's profile and find that the BitDepth and BitsPerSample value seems not correct. Also, the MaxSample value looks weird.
By checking the Matlab buildin tiff file profile, I learned that for a RGB image, BitDepth should be 24 and BitsPerSample should be [8,8,8]. However, when I tried to explicitly change them, I still get the same error.
fname = 'TifImg.tif';
info = imfinfo(fname);
% Explicitly Assign Correct Value to BitDepth and BitsPerSample (still doesn't work)
for i = 1: length(info)
info(i).BitDepth = 24;
info(i).BitsPerSample = [8 8 8];
% Read Tif Image
frame = imread(fname, 1, 'Info', info);
I hope someone can help me to load this image to Matlab and point me which profile I should change to successfully load the file.


Community Treasure Hunt

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

Start Hunting!

Translated by