MATLAB: A problem in TIFF reading

tiff_reading; tiff_short; tiff_long

Hi,Everybody.
I have a problem in TIFF reading. The matlab gave me a warning when I read a TIFF file:
WARNING: The datatype for tag SamplesPerPixel should be TIFF_SHORT instead of
TIFF_LONG. This may cause data corruption.
the code I used is given as follows:
FileTif=filename;
InfoImage=imfinfo(FileTif);
mImage=InfoImage(1).Width;
nImage=InfoImage(1).Height;
NumberImages=length(InfoImage);
FinalImage=zeros(nImage,mImage,NumberImages,'uint16');
How can I overcome this problem? Thanks a lot

Best Answer

The TIFF file you are reading does not have proper headers, and MATLAB is warning you about it. However, SamplesPerPixel is going to be a very small number, 1 for grayscale and 3 for RGB. If you were happening to use a TIFF with more than 32767 channels per pixel then you would encounter problems. For normal images it is just a warning about an improper file.
You could fix the file by opening it with some random image utility and asking to save it again.