У меня есть многостраничные TIFF-изображения размером> 4 ГБ. Мой компьютер не может обрабатывать импорт с помощью imread
, поэтому я хочу импортировать одну страницу за раз, используя цикл, делать то, что я хочу, и очищать память на каждом шаге. I красный this post о возможности для этого. Во всяком случае, я, похоже, не могу делать то, что хочу, поскольку, когда я использую info=imfinfo('my_image.tif')
, а затем numel(info)
(как было предложено в сообщении, которое я связал), эта последняя команда должна указывать мне количество страниц в моем многостраничном TIFF, но он выводит только 1. Я полагаю, что это связано с тем, как я создал изображения: я использовал GRASS GIS (объединив функции i.group
и r.out.gdal
).Импорт многостраничного изображения TIFF на одну страницу за один раз
Кроме того, информация, которую я получаю от imfinfo
показывает количество страниц (720) в разные голоса:
BitsPerSample
(который является1x720 double
)SamplesPerPixel
(который является720
)MaxSampleValue
иMinSampleValue
(оба являются1x720 double
)SampleFormat
(что составляет1x720 cell
)
EDIT 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 получает stucked. Я также попытался установить k = 1:2
, чтобы проверить импорт двух страниц, но программа все равно застревает, и я полагаю, что она не импортирует только одну страницу, а скорее все из них в одно и то же время. Размер изображения - 1677x927x720.
Возможно, попробуйте использовать 'pdfimages' - часть пакета Poppler. –