将MATLAB中矩阵存为浮点型TIFF(geoTiff)
由于需要将MATLAB中处理过的一些浮点型图像数据转入ENVI处理,发现直接用imwrite()存成 .tif 不可避免的会被量化,然而有些情况确实需要完整的浮点型精度。后来发现了mapping toolbox里面的 geotiffwrite() 函数可以比较方便地解决这个问题。
myimage = unifrnd(0,1,100,100); % 要存的图片,此处随机生成一个矩阵作示例
latlim = [-90,90];
lonlim = [-180,180];
R = georefcells(latlim,lonlim,size(myimage)); % 设置一个地理坐标
geotiffwirte('myimage.tif', myimage, R); % 存入图片myimage.tif
由于geotiffwrite()要求有对应的地理坐标,但对于一个无坐标映射的数据我们不关心它坐标是多少,所以此处随便设一个地理坐标R把数据存进去就行了。如果有已知的坐标当然更好,可以直接导入,具体方法见help文档。
这样,就把一个浮点型矩阵存入tiff文件了。如果想查看是否正确存入,可以用geotiffread()进行读取后显示。这个文件通常不能用一般的照片读取软件打开,会提示文件损坏,但可以直接导入ENVI等遥感软件进行处理。
参考资料:MATLAB help geotiffwrite