<<TIFF/IT breaks TIFF 6.0 in many ways. TIFF/IT is certainly inspired by TIFF, but it is not a valid subset of TIFF 6.0 by far. It's best regarded a different file format altogether. [...]
TIFF/IT does not include the tag datatype 13 (IFD), nor, of course, its BigTIFF equivalent 18 (IFD8). It therefore enforces the problematically ambiguous use of the datatype 4 (Long, unsigned 32bit integer). [...] It therefore makes sense for TIFF/A to distinguish between unsigned 32bit integer data that is meant to communicate an actual integer value on the one hand, and a pointer to an auxiliary IFD on the other hand. [...]
TIFF/IT supports ICC color profiles. TIFF/A does not. (See section “7.2.8.4 Colour values” in the TIFF/IT specification.) [...]
Note that nothing here is actually valid criticism on the TIFF/IT file format, nor is it intended as such, on the condition that TIFF/IT is not mistaken for a flavor of TIFF, or an interchange or archival file format. If TIFF/IT is regarded as its own format, serving prepress needs perfectly fine, as it is intended, none of the above is anything other than a useful feature. Except for the badly chosen name, and the impractical and confusing reuse of another format's header and signature value.>>
Notice the 7.2.8.4 . So your IT8COLORTABLE is representing an ICC Color Profile, which is not used in the TIFF/A standard .
Basically what you have is a TIFF/IT file that is not a TIFF 6.0 file as is expected by imread(), and the TIFF/IT standard is incompatible with TIFF 6.0 in some regards. Especially as to what a LONG means in some circumstances. And your error message has to do with LONG.
<<In theory, one should never copy tags that are unknown.
You may do otherwise, and many people do. But then you are open for trouble, for instance when copying a LONG value that is in fact intended to be a private IFD pointer.>>
More evidence that it is incompatibility in file formats.
Your file is not a TIFF file in the sense expected by MATLAB's imread(): it is a TIFF/IT file, which has a subtly different use of the tag structure and you are seeing the effect of it. You might have problems with the file as it is corrupt from the standpoint of TIFF readers.
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.
It seems that the file is corrupted and is not TIFF-format compliant. When you open and save it using ImageJ (for example), it is likely that this latter formats it correctly and fills in the Tag and ImageDescription fields which seem to be missing in your original file.
A workaround would be to use the MATLAB class function TIFF which is MATLAB's getaway to LibTiff libraries.
Best Answer