例如某TIFF数据,在arcmap、ENVI等软件中打开显示如下:

但用MATLAB imread命令加载进去显示异常,如下图所示:

并且用Windows自带照片查看器打开仍是上图这个鬼样子。
经详查后发现,此图在arcmap属性中显示数据位数为32位 (32 bit),在网上又查阅一番资料后有了答案。
造成此现象的原因:虽然TIFF格式支持32位 ,但Matlab不支持32位TIFF。Matlab接受的TIFF数据格式是double,single,uint8,uint16或logical。
解决方法:在arcmap里导出一下就好了
1.

2. 勾选 Use Render。使得数据位数变为8bit。

不过此方法会造成影像数据精度的些许损失。
版权声明:本文为Dust_Evc原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。