MATLAB 读取32位TIFF图显示异常问题解决
例如某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。
不过此方法会造成影像数据精度的些许损失。