我在循环中生成3500x7500大小的双矩阵,我想将其导出为tif文件。
代码的一部分
for k = 1:length(basinlist{1})
#some operation that produces GRID
imwrite(GRID,filename);
end
但是,当我这样做时,生成的TIF文件只包含255,输出在uint8中。我在文档中读到了它,但我无法解决它。我想要的只是保留原始值,没有缩放或任何东西。
如果这有帮助:
>> max(max(GRID))
ans =
1.5646e+04
>> min(min(GRID))
ans =
1.1119e+03
答案 0 :(得分:1)
假设我们想要创建具有适合给定数据的颜色深度的图像。
导出为图像格式的数据默认转换为uint8
(数据范围0-2 ^ 8-1)。
但Matlab(2011b)可以使用更多uintX
格式运行,其中X
代表每个值X位。
uint8
,范围为0-255(2 ^ 8)uint16
,范围为0-65 535(2 ^ 16)uint32
,范围为0-4.29 e 9(2 ^ 32)uint64
,范围为0-1.84 e 19(2 ^ 64)导出数据而无任何损失的代码:
for k = 1:length(basinlist{1})
#some operation that produces GRID
%% Convert GRID to roughest acceptable uint format
GRID=uint16(GRID);
%% Export
imwrite(GRID,filename);
end