У меня много многостраничных TIFF (193, 2160, 2560), что по сути является 193 (2160, 2560) изображениями. В некоторых экспериментах даже есть несколько из этих многостраничных tiff, которые продолжаются в другом, где один остановился. Я хотел бы создать изображение из всех пикселей в одном и том же месте на всех страницах / изображениях в многостраничных файлах, соответствующих одному эксперименту. Я попытался загрузить стеки TIFF в массив NumPy, однако я получаю сообщение об ошибке:
MemoryError: Unable to allocate array with shape (193, 2160, 2560) and data type uint16
Я могу использовать функцию ImageCollection
из scikit-image для загрузки каждой страницыумножьте tiff на отдельные одноканальные массивы размером (2160, 2560) и сохраните ссылку, которая не требует сохранения всего массива в памяти. Я также видел ответы на другие вопросы, которые используют ImageSequence
и seek()
из PIL для достижения аналогичного поведения. Кажется, что я мог бы сделать это, пройдя определенную часть каждой страницы / изображения для каждого многостраничного текста и вычислив среднее значение для каждого пикселя по частям, используя numpy.mean()
, но я не знаю, как определить наиболее эффективный размер частичного изображения /под-массив и как сравнить под-массивы для вычисления среднего.
Буду признателен за любую помощь!