爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5244|回复: 0

[讨论] 数据类型和图像存储

[复制链接]

新浪微博达人勋

发表于 2018-2-6 12:38:15 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
    我不是高手,仅仅是把自己的经历发出来讨论,给各位一点点经验。
    之前处理地基观测的数据,图像格式是int16,每一步都没问题。最后一步差分之后投影,需要把图像矩阵换成double类型。得到的double类型的矩阵用imshow可以显示出来,但是用imwrite存储之后就是一片黑的,在文件夹中没法浏览,再用imread读取的时候数据也失真了。
      看了很多相关文章后,把图像转成int8之后再存储。在文件夹中可以浏览,但信息丢失严重,数据两极化。
      一次偶然的机会,把matlab升级到了2016a。突然发现用imwrite存储的double类型的图片可以在文件夹下浏览了,然而还是有信息丢失。
     非常仔细的检查了程序和数据的变化。意识到在做差分的时候出现了负数,而图像存储的时候int8的范围在【0,255】,double的范围在【0,1】之间,这个可能是图像失真的原因。于是在存储之前,把数据线性投影到【0,1】之间,这下存储的图像就可以直接清晰地浏览了。
ZII=(ZI-min(min(ZI)))/max(max(ZI-min(min(ZI))));   %线形投影
imwrite (ZII, str); %存储
     最后的问题是如果需要对图像做进一步的数据分析,在【0,1】之间的数据和【-65535,65535】之间的数据应该是有区别的,目前我只能用save的方式存dat文件,来保证数据不变。为啥前面用int16存储图像就完全没有数据丢失之类的问题呢
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表