Измените размер изображения в градациях серого, суммируя интенсивности пикселей для каждой сетки 2x2 - PullRequest
0 голосов
/ 04 августа 2020

У меня есть набор данных из 36 000 изображений tif (оттенки серого, 16 бит), каждое размером 2048 x 2048 пикселей. Я хочу изменить их размер до 1024 x 1024 пикселей, добавив интенсивности в каждой сетке 2x2, чтобы сгенерировать интенсивность в каждом пикселе измененного изображения. Мне нужно сделать это в Python. Я делал это с помощью ImageJ с Image> Transform> Bin, method = Sum. Я не могу найти библиотеку Python, которая делает это. Любая помощь приветствуется. Спасибо.

1 Ответ

2 голосов
/ 04 августа 2020

block_reduce от skimage_measure работал у меня. Вот фрагмент кода:

import numpy as np
from skimage.measure import block_reduce
import skimage.io as tiffio

#read original 2k x 2k image
original_image = tiffio.imread(read_path+"/RawImage_00000.tif", plugin = 'tifffile')
#bin image by factor of 2 along both axes, summing pixel values in 2x2 blocks
sum2bin_image = block_reduce(original_image, block_size=(2, 2), func=np.sum)
#Numpy arrays are 64-bit float variables, so the following step restores the original unsigned 16-bit format
sum2bin_image = np.round(sum2bin_image).astype(np.uint16)
#save generated image
tiffio.imsave(save_path+'/'+'sum2bin_00000.tif', sum2bin_image, plugin='tifffile')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...