Numpy OpenCV中图像遮罩的平均值

Numpy OpenCV中图像遮罩的平均值,numpy,opencv,mean,numpy-ndarray,Numpy,Opencv,Mean,Numpy Ndarray,目前,我有一个数量可变的np.ndarray,它们表示相同大小的图像掩码。数组中的值为255或0。现在我想得到所有这些数组的平均值。我目前拥有以下代码: mask = np.mean(masks).astype(int) mask[mask > 169] = 255 masks是大小为(296640)的np.ndarray列表。但我得到了一个错误: TypeError: 'numpy.int64' object does not support item assignment 取所有轴

目前,我有一个数量可变的
np.ndarray
,它们表示相同大小的图像掩码。数组中的值为255或0。现在我想得到所有这些数组的平均值。我目前拥有以下代码:

mask = np.mean(masks).astype(int)
mask[mask > 169] = 255
masks
是大小为
(296640)
np.ndarray
列表。但我得到了一个错误:

TypeError: 'numpy.int64' object does not support item assignment

取所有轴上遮罩的总平均值,将其减少为单个缩放值(对象类型
int64
)。您希望取
轴=0
的平均值,因为它们包含在一个列表中,以将遮罩的高度宽度保留到单个平均遮罩中

mask1 = np.random.randint(0,255,(296, 640))
mask2 = np.random.randint(0,255,(296, 640))
mask3 = np.random.randint(0,255,(296, 640))

masks = [mask1, mask2, mask3]

mask = np.mean(masks, axis=0).astype(int)
mask[mask > 169] = 255

mask.shape

我这样做了,我得到了不兼容的形状-事实上,看看这个:
mask.shape,masks[0]。shape=(2296)(296640)
,它不同于您上面所做的
np.randint
原始
masks的形状是什么<代码>蒙版。形状应该是(296640)我很困惑,你有2961D蒙版,每个蒙版的形状都是640??你能解释一下面具是什么吗?啊啊啊,真管用!
(296, 640)