MATLAB中的多页Tiff写入不起作用
我正在使用下面的函数读取Tiff,这很好,但是当我尝试使用我的写入函数将相同的Tiff写回另一个文件时,都是255。有人知道如何解决这个问题吗?谢谢,亚历克斯MATLAB中的多页Tiff写入不起作用,matlab,io,tiff,multipage,Matlab,Io,Tiff,Multipage,我正在使用下面的函数读取Tiff,这很好,但是当我尝试使用我的写入函数将相同的Tiff写回另一个文件时,都是255。有人知道如何解决这个问题吗?谢谢,亚历克斯 function Y = tiff_read(name) % tiff reader that works info = imfinfo(name); T = numel(info); d1 = info(1).Height; d2 = info(1).Width; Y = zeros(d1,d2,T); for t = 1:T
function Y = tiff_read(name)
% tiff reader that works
info = imfinfo(name);
T = numel(info);
d1 = info(1).Height;
d2 = info(1).Width;
Y = zeros(d1,d2,T);
for t = 1:T
temp = imread(name, t, 'Info',info);
Y(:,:,t) = temp(1:end,1:end);
end
% Tiff writer that doesn't work
function tiff_write(Y,name)
% Y should be 3D, name should end in .tif
T = size(Y,3);
imwrite(Y(:,:,1),name);
for t = 2:T
imwrite(Y(:,:,t),name,'WriteMode','append');
end
尝试使用以下行:
Y = zeros(d1,d2,T,'uint16');
而不是这个:
Y = zeros(d1,d2,T);
您的数据可能是uint16格式,导出时将最大值剪裁为255 uint8,这会使值大于255的像素(如果您的数据是uint16格式)显示为白色
否则,您可能需要使用以下行:
function tiff_write(Y,name)
% Y should be 3D, name should end in .tif
for t = 2:T
imwrite(Y(:,:,t)/255,name,'WriteMode','append');
end