【发布时间】:2015-08-04 15:06:23
【问题描述】:
我有一些多页 TIFF 图像,每个 >4 GB 大小。我的电脑无法使用imread 处理导入,所以我想使用循环一次导入一页,用它做我想做的事,并在每一步清除内存。
我红色this post 关于这样做的可能性。无论如何,我似乎无法做我想做的事,就像我使用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。
【问题讨论】:
-
也许可以尝试使用
pdfimages- Poppler 包的一部分。
标签: image matlab multidimensional-array tiff imread