我有一些多页 TIFF 图像,每个 >4 GB 大小。我的电脑无法处理导入imread
,所以我想使用循环一次导入一页,用它做我想做的事,并在每一步清除内存。我把这篇文章加红了关于这样做的可能性。无论如何,我似乎无法做我想做的事,就像我使用info=imfinfo('my_image.tif')
, 然后numel(info)
(如我链接的帖子中所建议的那样),最后一个命令应该告诉我我的多页 TIFF 中的页数,但它仅输出 1。我想这与我创建图像的方式有关:我使用了 GRASS GIS(结合了i.group
和r.out.gdal
函数)。
此外,我从中获得的信息imfinfo
显示了不同声音的页数(720):
BitsPerSample
(即1x720 double
)SamplesPerPixel
(即720
)MaxSampleValue
和MinSampleValue
(都是1x720 double
)SampleFormat
(即1x720 cell
)
编辑 1
我忘了提到我的代码是(就像链接一样):
fname = 'my_file_with_lots_of_images.tif';
info = imfinfo(fname);
num_images = numel(info);
for k = 1:num_images
A = imread(fname, k, 'Info', info);
% ... Do something with image A ...
clear A
end
当我运行它时,MATLAB 卡住了。我也尝试设置k = 1:2
来测试两个页面的导入,但是程序仍然卡住了,我想它不是只导入一个页面,而是同时导入所有页面。图像尺寸为 1677x927x720。