Рассчитать среднее значение пикселей со значением <0,5 с помощью scikit-image - PullRequest
0 голосов
/ 28 февраля 2019

Используя пакет scikit-image в Python 3 и учитывая изображение RGB, как мы можем рассчитать среднее значение пикселя (нормализованные значения в диапазоне от 0 до 1) для пикселей, значение которых> 0,5?

IЯ думаю, мне удается замаскировать пиксели, по которым я хочу рассчитать среднее значение, как нам тогда действовать?

from skimage.io import imread, imshow
from skimage.transform import resize

imgData = data.imread(dataFilepath, as_grey=True)
imgData = resize(imgData, (256,256))

imgMask = imgData < 0.5
imgData[imgMask] = 0
imshow(imgData)    # correctly shows the pixels that we want selected. the unwanted pixels are blacked out (value = 0)

1 Ответ

0 голосов
/ 28 февраля 2019

Вы можете использовать логическое индексирование NumPy вместе с методом mean() для многомерных массивов:

imgData = imread(dataFilepath, as_gray=True)
imgMask = imgData > 0.5
imgAvg = imgData[imgMask].mean()

В приведенном выше фрагменте imgAvg естьСредняя интенсивность вычисляется по пикселям, в которых значение интенсивности больше 0,5.Если вы намеревались затемнить пиксели изображения, значение которых меньше или равно 0,5, а затем вычислить среднее значение по всему изображению, вы можете использовать следующий код:

imgAvg = imgData[imgMask].sum()/imgData.size
...