例如某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。

不过此方法会造成影像数据精度的些许损失。
本文介绍了一种32位TIFF格式图像在MATLAB中显示异常的问题及其解决方法。原因是MATLAB不支持32位TIFF,导致图像无法正常显示。解决方法是在arcmap中将数据位数转换为8bit,虽然会损失部分精度,但能使图像在MATLAB中正确显示。


被折叠的 条评论
为什么被折叠?



