我想制作一个具有与图像中某些单元格相对应的蒙版的面具。这些单元格的RGB颜色值中的至少一个应大于阈值。这是我的代码不起作用:
B = image[0:h,0:w,0].astype(int)
G = image[0:h,0:w,1].astype(int)
R = image[0:h,0:w,2].astype(int)
mask = np.zeros((h,w))
mask[np.where( max(R,G,B) > threshold )] = 1
这给出了一个错误:
发生ValueError Message =具有多个元素的数组的真值是不明确的。使用a.any()或a.all()
由于你的图像是一个三维数组(h, w, 3)
,你可以通过简单地取最后一个轴得到max(R, G, B)
:
np.max(image, axis=-1)
将返回的值与threshold
进行比较,得到一个bool
数组。把它扔到int
得到一个零和一个掩码:
mask = (np.max(image, axis=-1) > threshold).astype(int)