我想计算图像某个部分(numpy 数组)的平均值。 该图像包含一只狗,我有一个蒙版,可以使用 bitwise_and 将除狗之外的所有像素涂黑。 然后我可以计算出没有周围环境的狗的平均强度
masked_dog_image = cv2.bitwise_and(dog_image,dog_mask)
dog_image_no_zeros = masked_dog_image[masked_dog_image > 0].
np.mean(dog_images_no_zeros)
但是,我认为没有必要先创建 masked_dog_image 然后再创建dog_image_no_zeros 只是为了找到这个平均值。 有没有更有效的方法来做到这一点?
最佳答案
您可以简单地使用dog_mask
来索引图像并计算结果像素的平均值:
np.mean(dog_image[dog_mask > 0])
我特意将 dog_mask
设为 bool
类型,以确保我们能够使用 bool 掩码正确建立索引。我不会对您掩码的数据类型做出任何假设。
关于python - 计算 numpy 数组(图像)特定部分的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64917795/