计算具有值<的像素的平均值;0.5使用Scikit-image



使用Python 3中的scikit-image软件包并给出了RGB图像,我们如何计算值> 0.5的像素的平均像素值(范围为0到1)的平均像素值(范围为0到1)?/p>

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

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)

您可以使用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

最新更新