Найти среднее значение каждого пикселя в многостраничном TIFF в Python - PullRequest
0 голосов
/ 22 октября 2019

У меня много многостраничных 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(), но я не знаю, как определить наиболее эффективный размер частичного изображения /под-массив и как сравнить под-массивы для вычисления среднего.

Буду признателен за любую помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...