问题描述
目前我有可变数量的 np.ndarray
代表相同大小的图像蒙版。数组中的值是 255 或 0。现在我希望能够获得所有这些数组的平均值。我目前有代码:
mask = np.mean(masks).astype(int)
mask[mask > 169] = 255
masks
是大小为 np.ndarray
的 (296,640)
的列表。但我收到错误:
TypeError: 'numpy.int64' object does not support item assignment
解决方法
您正在取所有轴上遮罩的整体平均值,这将其减少为单个缩放器值(对象类型 int64
)。您想对 axis=0
取平均值,因为您将它们包含在一个列表中,以将掩码的高度和宽度保留为单个平均掩码。
mask1 = np.random.randint(0,255,(296,640))
mask2 = np.random.randint(0,640))
mask3 = np.random.randint(0,640))
masks = [mask1,mask2,mask3]
mask = np.mean(masks,axis=0).astype(int)
mask[mask > 169] = 255
mask.shape
(296,640)