使用scikit-image计算值<0.5的像素的平均值

时间:2019-02-27 23:49:32

标签: python python-3.x image scikit-image scikits

使用Python 3中的scikit-image包并给出RGB图像,我们如何计算值大于0.5的像素的平均像素值(归一化的值,范围从0到1)?

我认为我设法掩盖了我希望计算平均值的像素,然后我们应该如何进行?

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 :(得分:1)

您可以将NumPy的boolean indexingmean()方法一起用于多维数组:

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