【问题标题】:Calculate Average Value of Pixels with Value < 0.5 Using scikit-image使用 scikit-image 计算值 < 0.5 的像素的平均值
【发布时间】:2019-02-27 23:49:31
【问题描述】:

使用 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)

【问题讨论】:

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


    【解决方案1】:

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

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

    在上面的sn-p 中imgAvg 是在强度值大于0.5 的像素上计算的平均强度。如果您打算将值小于或等于 0.5 的图像像素涂黑,然后计算整个图像的平均值,您可以使用以下代码:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-25
      • 1970-01-01
      • 1970-01-01
      • 2019-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多