【问题标题】:Multipage Tiff write in MATLAB doesn't work在 MATLAB 中写入多页 Tiff 不起作用
【发布时间】:2014-09-11 02:03:02
【问题描述】:

我正在使用下面的函数读取 Tiff,它工作正常,但是当我尝试使用我的 write 函数将相同的 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
    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

【问题讨论】:

    标签: matlab io tiff multipage


    【解决方案1】:

    尝试使用这条线:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多